3

Facebook の PHP SDK を使用して Facebook 経由でユーザーを Web サイトに登録していますが、ユーザーのグラフに電子メール情報が表示されないことがありますが、電子メールのアクセス許可を持つ有効なアクセス トークンがあります。

認証のためにユーザーを送信する URL は次のとおりです。

https://www.facebook.com/dialog/oauth?client_id=[FACEBOOK_APP_ID]&redirect_uri=[REDIR_URL]&**scope=email**,publish_stream,publish_actions,user_about_me,user_birthday,user_hometown,user_location,user_website

チェックするhttps://graph.facebook.com/[USER_ID]/permissions?access_token=[ACCESS_TOKEN]と、次のことがわかります。

"data": [{
     "installed": 1,
     "status_update": 1,
     "photo_upload": 1,
     "video_upload": 1,
     **"email": 1,**
     "create_note": 1,
     "share_item": 1,
     "publish_stream": 1,
     "publish_actions": 1,
     "user_birthday": 1,
     "user_hometown": 1,
     "user_location": 1,
     "user_website": 1,
     "user_about_me": 1
}]

ユーザーの詳細を確認するhttps://graph.facebook.com/[USER_ID]/?access_token=[ACCESS_TOKEN]と、すべてが表示されますが、電子メール フィールドがありません。

どこに問題がありますか?これを調査するために役立つ詳細があれば教えてください。

事前にご提案いただきありがとうございます。

4

2 に答える 2

1

それは奇妙なものです。通常、email許可が与えられている場合は常にメール アドレスが返されます。プライバシー設定でメール アドレスが他のユーザーに表示されていない場合でも同様です。

アプリケーションに最初に付与された電子メール アドレスが削除または更新された可能性があります。ただし、これを自分でテストしたところ、更新された電子メール アドレスは引き続き API 経由で送信されます。

これに関して Facebookに報告されたバグがあります。バグを購読してください。うまくいけば、すぐに解決されます。

于 2012-05-31T08:44:26.077 に答える
0

ユーザーが許可を与えると、ユーザーはアプリケーションと電子メール情報を共有しないことを選択できます。彼/彼女が許可を与えなかった場合はそれをチェックする必要があります。メールアドレスを取得するまで、ユーザーを許可リンクに再度リダイレクトする必要があります。

于 2012-05-31T08:47:46.087 に答える