Facebook Android SDK を使用しています。アプリをダウンロードしたユーザーの友達を簡単に取得する方法はありますか? たとえば、アプリ Draw Something はこれを実装しています。この件に関する情報が見つからないようです
可能であれば、この情報にアクセスするには、httppost に追加の情報が必要になると思います。
*注: 3.14 バージョン以降、me/friends はアプリを使用している友達のみを返すため、以下の実装は非推奨です。代替手段については、新しい「Invitable Friends」または「Taggable Friends」API を参照してください。
新しいFacebook SDK for Android (3.0)を使用すると、ユーザーの友達リストを簡単に取得できます。コードは次のとおりです。
private void requestFacebookFriends(Session session) {
Request.executeMyFriendsRequestAsync(session,
new Request.GraphUserListCallback() {
@Override
public void onCompleted(List<GraphUser> users,
Response response) {
// TODO: your code for friends here!
}
});
}
それにもかかわらず、Facebook アプリを使用しているユーザーの友達を取得するのは少し複雑です (Facebook API のドキュメントのため)。しかし、はい、可能です。
まず、リクエストを作成します。
private Request createRequest(Session session) {
Request request = Request.newGraphPathRequest(session, "me/friends", null);
Set<String> fields = new HashSet<String>();
String[] requiredFields = new String[] { "id", "name", "picture",
"installed" };
fields.addAll(Arrays.asList(requiredFields));
Bundle parameters = request.getParameters();
parameters.putString("fields", TextUtils.join(",", fields));
request.setParameters(parameters);
return request;
}
リクエストに「インストール済み」フィールドを挿入する必要があることに注意してください。同じリクエストでユーザーの画像パスをリクエストしています。ここであなたの可能性をチェックしてください。
次に、上記のコードを使用してリクエストを作成し、友達を取得できます。
private void requestMyAppFacebookFriends(Session session) {
Request friendsRequest = createRequest(session);
friendsRequest.setCallback(new Request.Callback() {
@Override
public void onCompleted(Response response) {
List<GraphUser> friends = getResults(response);
// TODO: your code here
}
});
friendsRequest.executeAsync();
}
この一般的なリクエストを使用すると、応答として GraphUser リストを受信しないことに注意してください。GraphUser リストとして応答を取得するには、次のコードが必要です。
private List<GraphUser> getResults(Response response) {
GraphMultiResult multiResult = response
.getGraphObjectAs(GraphMultiResult.class);
GraphObjectList<GraphObject> data = multiResult.getData();
return data.castToListOf(GraphUser.class);
}
これで、各友達が Facebook アプリを使用しているかどうかの情報を使用して、ユーザーの友達リストを使用できます。
GraphUser user = friends.get(0);
boolean installed = false;
if(user.getProperty("installed") != null)
installed = (Boolean) user.getProperty("installed");
こんな感じで実装しました
Bundle params = new Bundle();
params.putString("fields", "name, picture, location, installed");
そして、リスト上のアイテムの表示中に、 getView() メソッドでこれを行いました
boolean b = jsonObject.getBoolean("installed");
if (b){
Log.d("VIVEK",jsonObject.getString("name"));
}
この投稿がお役に立てば幸いです: グラフAPI asp.netでFacebookアプリを使用して友達を取得するにはどうすればよいですか
Facebook SDKによると、このhas_added_app
フィールドは非推奨であり、使用する必要がありますis_app_user