2013-11-24 10 views
10

私はこれで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? 
} 

ポイント

その他

  • なぜマティーニ?それは血まみれに見える。
  • なぜOauth2だけではないのですか?私は無知なので。
  • なぜPHP/Pythonを使用しないのですか?だから、さあ!私はGoを学ぼうとしています。 (私はそれを愛しており、私のUI作業を向上させる素晴らしい結果を得ています)。
+2

't。Exchange(コード) 'は認証トークンとエラーを返します - その値を確認してください。 – thwd

+1

さらに詳しい例はこちらをご覧ください。https://code.google.com/p/goauth2/source/browse/oauth/example/oauthreq.go – elithrar

+0

リードに感謝します。私は見て、別の亀裂を取る。 – Geoffrey

答えて

1

私のクライアントアプリケーションにはほとんど回答がありませんでした.OAuth2にはいくつかの欠点がありました要求。 (。それはまた別のリクエストのヘッダーが正しい取得するには少しの努力をした)

私が見つけたのRedditののOAuth2プロセスのための最良の情報はここにあった:http://www.reddit.com/r/redditdev/comments/197x36/using_oauth_to_send_valid_requests/

のRedditからの応答がまだ私はクライアントIDを求めてpingしますClientSecretは適切なResponseWriterを介して提供されると確信していますが、現時点ではポップアップにコピー/ペーストするだけで、何かに集中することができます!

私はそれを二乗すると、この答えに追加されます。

さらに詳しい情報に関心がある方は、お気軽にお問い合わせください。

TomwildeとElithrarに感謝します。

+0

もう一日の闘争で問題が明らかになりました。エラーハンドラは成功ハンドラの結果を常に上書きしていました。 – Geoffrey

関連する問題