2

ユーザーを認証するために、 HybridAuth ライブラリ用の Flickr プロバイダーを作成しようとしていますが、問題が発生しています。

OAuth 1 に基づくFlickr APIを使用しています。

問題は、ユーザーが現在認証されているかどうかに関係なく、関心のある API 呼び出しでユーザー名またはユーザー ID を指定する必要があることです。

認証中にアクセス トークンを受信すると、Flickr API はユーザー名と user_nsid ( http://www.flickr.com/services/api/auth.oauth.html、「リクエスト トークンをアクセス トークンに交換する")。

ただし、HybridAuth は、$adapter認証中にこれらの情報を変数に保存していないようでした。コードを掘り下げたところ、実際に保存されていることがわかりました。の関数のvar_dump次の行の直後は、それらが実際に(と同一である)に格納されていることを示しています。loginFinish()Provider_Model_OAuth1.php$this->access_raw_tokens$this$adapter

// request an access token
$tokens = $this->api->accessToken( $oauth_verifier );

// access tokens as received from provider
$this->access_tokens_raw = $tokens;

ここまでは順調ですね。しかし、カスタム ページで Flickr アダプターを呼び出そうとします。

try{
    // initialize Hybrid_Auth with a given file
    $hybridauth = new Hybrid_Auth($config);
    $adapter = $hybridauth->authenticate("Flickr");
}
catch(Exception $e){
    echo $e;
}

コードは正常に実行されますが、試してみるとvar_dump($adapter);access_tokens_rawフィールドはaccess_tokens_raw = null.

必要に応じて、Flickr プロバイダー コード ( ) を提供できます。これは、および とFlickr.phpほぼ同じです。Twitter.phpinitialize()loginBegin()

この問題はしばらくの間私を悩ませてきました。ご意見をお寄せいただければ幸いです。他のプロバイダーの HybridAuth 認証を損なうことなく、認証済みの Flickr ユーザー名または user_nsid を保持できるソリューションを歓迎します。

4

0 に答える 0