2011-01-04 28 views
0

私のサイトでopenidを使用していて、ログインに成功すると、ユーザーの電子メールやその他の名前をファーストネームのように取得できます。Facebook graph api problem

しかしfacebookの場合、iamはfacebook connect(Graph api)を使用してログインに成功した後、iamがアクセストークンを取得します。しかし、このトークンを使用して、私はユーザーの電子メールを取得できません。無効なトークンまたは無効なリダイレクトURLのいずれかを示すエラーが表示されます。

+0

[Facebook接続、電子メールアドレス?](http://stackoverflow.com/questions/2986578/facebook) -connect-email-address) – Rup

+0

いいえ、私はそれが重複していないと思います。なぜなら、私はここでエラーが発生しているからです。私は今もタイトルを変更しました。参照してください。 –

+0

どのような拡張アクセス許可を要求しますか? – misterjinx

答えて

2

最初のトークンを取得したら、必要な権限(この場合は「電子メール」)を要求するログインURLにユーザーをリダイレクトする必要があります。これを実装する最も簡単な方法は、Facebookが提供するPHP SDKを使用することです。

許可を与えた場合、グラフAPIを照会して(他の基本情報とともに)電子メールアドレスを取得することができます。有効な作業トークンを持っていて、電子メールアドレスは$ user_dataに含まれます。

$facebook = new Facebook(array('appId'=>APP_ID, 'secret'=>APP_SECRET, 'cookie'=>true)); 

try{ 
    $user_data = $facebook->api('/me'); 
} catch (Exception $e){ 
    header('Location: ' . $facebook->getLoginUrl(array('perms'=>'email')); 
    die(); 
} 

print $user_data['email']; 

メールアドレスプロキシアドレスもはるかに長く、一般的なメールアドレスよりので、ご使用のストレージシステムに十分なスペースを割り当ててもよいことに注意してください。たとえば、アドレスは次のようになります。apps [email protected]ook.com

+0

お返事ありがとうございました....私はそれを試してみます。 –