私はこれで2日間私の頭を叩いていて、明らかに何か不足しています。私は、バックエンド/サーバー開発の上で、そして誰かが正しい方向に私を向けることを望んでいるのでは、少しばかげています。Oauth2 in Martini - Reddit用のResponseWriter構文
- RedditからOAuth2リクエストを行うデスクトップアプリケーション(Goではない)があります。
- 私のアプリケーションのOAuth2は正常に動作していますが、Redditが自分のサーバー上のリダイレクトURIをヒットしたときにフローが失敗します。
- 私はそれが適切なResponseWriterの結果を待っていると思っています。何十回も無能な試行が行われていません。
- リダイレクトURIがサーバーとコールバック関数(下記)にヒットしてから何もしません。
質問私が間違っているつもりです
- ?
- 変数 "t"は私の認証コードであり、私は完了しました(別名、あなたは吹き出しです)。
- 私はGo以外のアプリにtの値を書き込み、終了できますか?
- また、ステップがありませんか?
- 注:コードはやや簡略化されています。
ありがとう!参照の
package main
import (
"code.google.com/p/goauth2/oauth"
"fmt"
"github.com/codegangsta/martini"
"io"
"net/http"
)
var config = &oauth.Config{
ClientId: CLIENT_ID,
ClientSecret: CLIENT_SECRET,
Scope: "identify",
AuthURL: "https://ssl.reddit.com/api/v1/authorize",
TokenURL: "https://ssl.reddit.com/api/v1/access_token",
RedirectURL: "http://localhost:3000/reddit_oauth",
}
func main() {
m := martini.Classic()
m.Get("/reddit_oauth", handleCallback)
m.Run()
}
func handleCallback(w http.ResponseWriter, r *http.Request) {
//Get the code from the response
code := r.FormValue("code")
// Exchange the received code for a token
t := &oauth.Transport{Config: config}
t.Exchange(code)
// Am I done?
}
ポイント
- のRedditのAPI
- Redditの特定のPHP例
- Redditの具体的なPythonの例
- マティーニ
- 行くのOAuth2
その他
- なぜマティーニ?それは血まみれに見える。
- なぜOauth2だけではないのですか?私は無知なので。
- なぜPHP/Pythonを使用しないのですか?だから、さあ!私はGoを学ぼうとしています。 (私はそれを愛しており、私のUI作業を向上させる素晴らしい結果を得ています)。
't。Exchange(コード) 'は認証トークンとエラーを返します - その値を確認してください。 – thwd
さらに詳しい例はこちらをご覧ください。https://code.google.com/p/goauth2/source/browse/oauth/example/oauthreq.go – elithrar
リードに感謝します。私は見て、別の亀裂を取る。 – Geoffrey