web-dev-qa-db-ja.com

アプリスコープのユーザーIDからFacebookユーザーIDを取得する

Facebook Graph API v1.0からv2.0へのアップグレードにより、Facebookは「アプリスコープのユーザーID」を使用しているため、アプリ内で「元の」ユーザーIDが表示されなくなりました。

私は常に「 https://graph.facebook.com/ {postId}/comments 」のようなリアルタイム更新とグラフAPI呼び出しを使用して、アプリがあったFacebookページでのユーザーアクティビティを分析しました。ただし、これらのデータには元のユーザーIDが含まれているため、登録済みのユーザーにアクティビティを一致させることができなくなりました!

では、アプリスコープのユーザーIDから元のFacebookユーザーIDを取得する方法はありますか?またはその逆ですか?

編集:

ここで言及したAPIメソッドを使用して、すべてのユーザーのアプリスコープIDを取得することになりました: https://stackoverflow.com/a/29154912/3432305 に加えて、データベースに保存しました古いID。その後、RTUが到着したときはいつでも、「古いユーザー」に対して、どのユーザーがこのアプリスコープのIDを持っているかを確認し、更新を処理します。少なくともFacebookはコメントに記載されているバグを修正できました( アプリスコープのユーザーIDからFacebookユーザーIDを取得 )API v1.0が廃止される数日前に、私のアプリの新規ユーザー向けに、それは魅力のように機能します。これまでのところ...

42
kolli

アプリスコープのユーザーIDに基づいて実際のユーザーIDを取得する(単純/明白な)可能性はありません。

10
Johannes N.

ヨハネスNの会話から.

元のユーザーIDを使用して、アプリスコープのID(所有しているアプリ用)を取得できますか。それも助けになります。

元のユーザーIDからアプリスコープのIDを取得するには、次の方法で簡単に行えます。

https://graph.facebook.com/v2.0/?ids=http://www.facebook.com/USER_ID&access_token=ACCESS_TOKEN

enter image description here

Yoは、fieldsパラメーターを使用してidのみを返すことができます。

https://graph.facebook.com/v2.0/?ids=http://www.facebook.com/USER_ID&fields=id&access_token=ACCESS_TOKEN

enter image description here

複数のIDを照会できるため、idではなくidsの利点:

enter image description here * wwwは、文字数を最小限に抑えるために削除できます。

ユーザー名からアプリスコープのIDを取得することも簡単にできます。

https://graph.facebook.com/v2.0/?ids=http://www.facebook.com/USERNAME&access_token=ACCESS_TOKEN

enter image description here

27
林果皞

スコープからリアルに戻ることはできません。あなたの最善の策は、それらすべてをスコープに変換することです。それは非常に簡単です:

https://graph.facebook.com/?ids=REAL_ID&access_token=APP_ID|APP_SECRET

これを行う簡単なRubyコードを次に示します。

require 'open-uri'
require 'json'

json = JSON.load(open("https://graph.facebook.com/?ids=#{real_id}&access_token=#{FACEBOOK_APP_ID}|#{FACEBOOK_APP_SECRET}"))
scoped_id = /app_scoped_user_id\/(\d+)\//.match(json[real_id.to_s]['link'])[1]
6
Sam Soffes