API docs で述べたように/user
、link
フィールドには、ユーザーのプロファイルURLが含まれます。ただし、このURLは通常、別のURL(つまり、Googleの結果に表示されるURL)にリダイレクトされます。
Facebook APIを介して特定のプロファイルの最終的なリダイレクト場所(「実際の」URL)を決定する方法はありますか?
たとえば、次のような場合:
"link":"https://www.facebook.com/1091552020"
取得したいhttps://www.facebook.com/sbhutiani
APIから
ユーザーの実際の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/
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"
}