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