2011-02-10 6 views
1

アクセストークンを取得した後、保護されたデータ(連絡先など)を読み取るために使用したいと思います。しかし、要求に対する応答として、私はOAuthの遊び場からのものに送信していたパラメータを比較し、(タイムスタンプ、ナンスと理解され、署名を除く)、それらの間に差がない Token invalid - Invalid AuthSub token.
Error 401
Google api oauthアクセストークンを使用しているときに[PHP]エラー401トークンが無効です


を取得しています。
私のヘッダーには、次のようになります。
Content-Type: application/atom+xml
Authorization: OAuth oauth_parameters

任意のアイデア何が間違って行くことができますか?

+0

GoogleアナリティクスAPIを除いて、まったく同じエラーが発生しています。助言がありますか? –

答えて

1

私はきちんとSESSIONを設定していませんでしたので、私は実際に代わりに私のアクセストークンの秘密と私のリクエストトークンを使用していた:P

if(empty($_GET["oauth_token"])) { 
    $_SESSION["token_secret"] = $oauthTokenSecret; 
    $_SESSION["oauth_token"] = $oauth_token; 

    echo '<script>window.location="'.$auth_url.'";</script>'; 
} 
else { 

    $oauth_token->key = urldecode($_GET["oauth_token"]); 
    $oauth_token->secret = $_SESSION["token_secret"]; 

    echo "<Br>"; 
    echo "<Br> FIRST OAUTH TOKEN: "; 
    echo $oauth_token->key; 

    echo "<Br>"; 
    echo "<Br> FIRST OAUTH TOKEN SECRET: "; 
    echo $oauth_token->secret; 

    print_r($_SESSION); 
    echo "<Br>"; 
    echo "<Br>"; 

    // GET https://www.google.com/accounts/OAuthGetAccessToken 
    $req = OAuthRequest::from_consumer_and_token($consumer, $oauth_token, 'GET', 
     $token_endpoint.'OAuthGetAccessToken', array('oauth_verifier' => $_GET['oauth_verifier'])); 

    $req->sign_request($sig_method, $consumer, $oauth_token, $privKey); 

    print_r($req); 

    $response = send_signed_request('GET', $token_endpoint.'OAuthGetAccessToken', array($req->to_header())); 

@Rafal - 私はあなたが2を取得していることを確認してくださいうトークンを分離してください(最初のリクエスト用に1つ、次にアクセス用に1つ)。新しいトークン/シークレットを使用して新しいシグニチャを再構築することは重要です。同じトークンを保持していれば、それは "無効な署名"を返すためです。

このプロセス中に必要なリダイレクトがあるため、初期トークンの秘密をSESSION変数に保存する必要があります。 oauth_tokenは、ユーザーがアプリケーションに戻った後にURLに返されますが、トークンシークレットは返されません。ラウンドトリップが完了した後にアクセスできる変数に格納する必要があります。

あなたがセッション全体oauth_tokenオブジェクトを保存したい場合は、あなたが「のsession_start()」

$oauth_token = new OAuthToken($oauthToken, $oauthTokenSecret); 

session_start(); 

前にオブジェクトをインスタンス化してくださいあなたが転載ときそうしないと、「不完全なオブジェクト」警告が表示されますSESSIONから受け取ったトークン私はこのプロジェクトに長い時間を費やし、OAuthに深く関わってきました。私に何か質問があればお気軽に、ラファル。

関連する問題