2016-07-13 8 views
0

私はプライベートTwitterユーザーのアカウントから投稿したい公開アプリケーションを持っています。このoAuthとtwitterがREST API経由でリクエストにサインします

完璧な例は次のとおりです。上記の例でhttp://www.usabchallenge.com/

、あなたの5人の選手を選択し、以下のTwitterボタンをクリックして、それがhttps://api.twitter.com/oauth/authorize?oauth_token=YOUR_TOKEN画面にあなたをもたらすでしょう。

Twitterのドキュメントを読むと、自分のアカウントへのアクセスを許可する「Twitterボタンでサインインしたい」と思っています。私がアクセス権を持っていれば、その人に代わって投稿することができます。

私はこのプロセスの流れで悩まされています。私はTwitterのドキュメンテーションでそれを読むことができますが、私は点を接続していません。

Twitterのから引用してください。ブラウザのサインフローページ。私は読書の容易さのためのステップに番号を振った。

1. The application renders a “Sign in with Twitter” link or button. 
2. The user clicks the sign in button. 
3. The current web browser is redirected to Twitter (or a new browser is opened and directed to Twitter). 
4. The user completes a login and authorization step at Twitter if needed. 
5. Twitter redirects back to an URL under the application’s control, passing authorization information for the user. 

手順1と2は自明です。

ステップ3 - ボタン自体にhref属性またはアクションを設定しますか?どうすればこのページにアクセスできますか?

ステップ4は、それがAuthorize YOUR_APPLICATION to use your account?

ステップ5は、あなたがoauth/request_token API呼び出しに提供さoauth_callbackパラメータであると言うことapi.twitterページ上のボタンをユーザーがクリックすることです。

だから私の2つの質問は以下のとおりです。

は、どのように私はボタンでの符号からhttps://api.twitter.com/oauth/authorize?oauth_token=YOUR_TOKEN画面に誰かを指示していますか? href?アクション?ボタンのデフォルトコードはありますか?

また、私はこのコールバックを提供するコールをステップ5に呼び出すためにどこにコールするのですか?ユーザーがサインインボタンをクリックすると要求されるのは理にかなっていますが、REST APIを呼び出すことができる場所ではなく、サインインボタンがユーザーをhttps://api.twitter.com/oauth/authorize?oauth_token=YOUR_TOKENに誘導するということと矛盾します。

私はthis link(および他の多くのページも参考にしています)を参照のために使用しています。

そして、私はcodebirdを使用して、すばらしい評価を得ているREST APIに接続しています。

答えて

2

ステップ3:それはツイッターにユーザーをリダイレクトするこのコードの一部です:

// redirect to auth website 
    $auth_url = $cb->oauth_authorize(); 
    header('Location: ' . $auth_url); 
    die(); 

私はあなたがPHPを使うのか分からないが、あなたはテンプレートを持っている場合、あなたはパラメータに$のauth_urlを渡すことができます現在のページの場所を変更する代わりにhrefに表示することができます。このURLを返す関数へのajax呼び出しを作成することもできます。 (個人的に私が作ったポップアップ)

ステップ4:正確

ステップ5:私はファイル「callback.php」iは、このファイルにTwitterのポイントで定義された(コールバックURLで、コードの第2の部分を分離しました)このように私はエラーとリダイレクトを正しく処理できます。 ここにも定義:

$reply = $cb->oauth_requestToken(['oauth_callback' => 'http://' .$_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] ]);