web-dev-qa-db-ja.com

Facebook Graph API 2.0のユーザー名フィールドを取得する

「古い」Facebook Graph APIには、人間が読み取れるプロファイルURLを作成するために使用できる「ユーザー名」フィールドがありました。たとえば、私のユーザー名は "sebastian.trug"で、FacebookのプロファイルURL http://www.facebook.com/sebastian.trug になります。

Graph API 2.0で Facebookは「/ me」から取得したユーザーデータから「username」フィールドを削除しました .

2.0 APIを介してこのデータを取得する方法はありますか、または「ユーザー名」は非推奨フィールドとして扱われていますか?

56
trueg

ユーザー名はFacebook経由でメールを送信する1つの方法であるため、Facebookはユーザー名を削除しました。

たとえば、URL http://www.facebook.com/sebastian.trug

対応するFacebookメールは[email protected]

電子メールで送信された場合、messagesに直接受信されます(message設定がpublicに設定されている場合)、そうでない場合はother受信ボックスに受信されます。

32
Nico Zarris

Userオブジェクトのusernameフィールドは削除されており、Graph API v2.0には存在しません。 APIのv2.0には、ユーザーのFBユーザー名を取得する方法はありません。

ソース: https://developers.facebook.com/docs/apps/changelog#v2_0_graph_api

「/ me/usernameは使用できなくなりました。」

24
Simon Cross

@Simon Cross-廃止されることが文書化されています、はい。それは問題ではありません。問題はどうやってそれを手に入れるかということです。さらにFacebookはなぜそんなにひどい選択をしてユーザー名を削除したのだろうかと思います。サービスでアカウントを作成するためにユーザー名に依存する何百ものアプリケーションが壊れます。

@ user3596238-2015年4月末まで予定されているV.1 APIに固執することができます。これは最善の解決策ではありませんが、それでもFacebookは関係ありません。 https://developers.facebook.com/docs/apps/changelog

解決策:実際のFacebookログインの他にユーザーにユーザー名を尋ねますか? -私の意見では、それはFacebookのログインをとにかく完全に無意味にします。

19
Stefan

2.0 SDKはusernameフィールドを提供しなくなりましたが、ユーザーID番号(とにかくグラフにアクセスするために使用する可能性が高い)があれば簡単に削除できます。

Url facebook.com/<user id>facebook.com/<username>にリダイレクトされ、その後、好きなように抽出できます。

6
Matt Way

私のアプローチは、ユーザープロファイルでnokogiriを使用してユーザー名を破棄することです。このような(Rubyで):

html = RestClient.get("http://facebook.com/123123xxx)
doc = Nokogiri::HTML(html)
username = doc.css('head meta')[1].attributes["content"].value
5
kubido

方法の1つは、cURLを使用してfacebook.com/{userid}にアクセスし、リダイレクトに従うことです。

ページがfacebook.com/{username}に再リダイレクトされます

2
Akshat Goel