始める前に、私の問題に対して提案された多くの解決策を読んで試してみましたが、どれも解決していないので、もう一度質問して非常に具体的にします.
グラフAPIとやり取りするために、omniauth 1.1.4 omniauth-facebook 1.4.0とkoala 1.7.0rc1を使用して、facebookログインをRails 4アプリに統合しています。このレイルキャストとまったく同じようにやっています。
私の問題は、コアラを介してユーザーのFacebookの友達をリクエストすると、
@current_friends = graph.get_connections('me', 'friends?fields=location,name,id')
返されたフレンド ハッシュにはlocation
フィールドが含まれていません。次のように、coffeescript ログイン呼び出しを更新してみました。
$('#fb_login').click (e) ->
e.preventDefault()
FB.login ((response) ->
window.location = '/auth/facebook/callback' if response.authResponse), scope: "friends_location"
しかし、それは何もしませんでした。次に、coffeescript を変更して、Facebook の omniauth 初期化子にスコープ パラメーターを渡してみました。
provider :facebook, ENV['FACEBOOK_APP_ID'], ENV['FACEBOOK_APP_SECRET'], :scope => 'friends_location'
変わりはない。coffeescript を完全に削除して、完全なリダイレクトを許可しようとしました。サーバー側とクライアント側の間でアプリの Facebook コンソールのAuth Token Parameterフィールドを切り替えてみました。私は基本的にこれらのもののすべての組み合わせを試しましたが、それでも何もしませんでした. 最後に、私が電話をかけるときに注意する必要があります
graph.get_connections('me', 'permissions')
返された許可リストにはfriends_location=1
. それで、何が起こっているのですか?