web-dev-qa-db-ja.com

Facebook Graph APIから「実際の」プロファイルURLを取得します/ user

API docs で述べたように/userlinkフィールドには、ユーザーのプロファイルURLが含まれます。ただし、このURLは通常、別のURL(つまり、Googleの結果に表示されるURL)にリダイレクトされます。

Facebook APIを介して特定のプロファイルの最終的なリダイレクト場所(「実際の」URL)を決定する方法はありますか?

たとえば、次のような場合:

"link":"https://www.facebook.com/1091552020"

取得したいhttps://www.facebook.com/sbhutiani AP​​Iから

17
jchook

ユーザーの実際のIDまたはユーザー名を取得することはできなくなったため、「実際のURL」を取得する方法はありません。詳細: https://developers.facebook.com/docs/apps/changelog

ただし、次のAPI呼び出しでユーザープロファイルへのリンクを取得できます:/me?fields=link

Facebookのドキュメントで「アプリスコープID」を確認してください。

更新:ユーザープロファイルへのリンクはもう不可能であるようです: https://developers.facebook.com/blog/post/2018/04/19/facebook-login-changes-address-abuse/

21
luschn

Facebookがuser_linkと呼ばれる別の権限(ユーザーが承認する必要がある)を作成したようです。これを取得できるようにしています。詳細については、こちらをご覧ください: https://developers.facebook.com/docs/facebook-login/permissions/#reference-user_link

/me?metadata=1を使用してエンドポイントで使用可能なフィールドに関するメタデータをクエリすると、これはlinkの説明にあるとおりです。

{
  "name": "link",
  "description": "A link to the person's Timeline. The link will only resolve if the person clicking the link is logged into Facebook and is a friend of the person whose profile is being viewed.",
  "type": "string"
}

ユーザーがその許可を承認した場合は、以前と同様にリンクを取得できます。

/me?fields=link

{
  "link": "https://www.facebook.com/app_scoped_user_id/SOME_TOKEN/",
  "id": "USER_ID"
}
4
amit_saxena