新しい SDK(3.0) を使用して Facebook から友達リストを取得しようとしています。バンドルに挿入する必要があるパラメーターの種類と、newMyFriendRequest と GraphAPI の使用方法に関連する問題に直面しています。
どのような種類のフィールドを使用する必要があるかについて、Facebook のドキュメントで見つけられませんでした。GraphExplorerに基づいて、この文字列「id、name、friend」を値としてキー「フィールド」をバンドルに挿入します。以下のコードは、私が今何をしているかを示しています。写真と名前を取得したら、newMyFriendRequest を実行します。デフォルトでGraphAPIを使用していると思います。
StackOverflow で、関連するいくつかの投稿を見てきました。
新しい Android SDK で FQL クエリを送信する方法
Facebook Android SDK リクエスト パラメータ: ドキュメントはどこにありますか?
それは私にはほとんど役に立たず、FQL を使用したくありません。応答 II の場合、応答のようなこの JSON を受け取ります。
{Response: responseCode: 500, graphObject: null, error: {HttpStatus: 500, errorCode: 100, errorType: FacebookApiException, errorMessage: Unsupported operation}, isFromCache:false}
Facebook SDK for Android を初めて使用することに注意してください。
private void onSessionStateChange(final Session session, SessionState sessionState, Exception ex){
if(session != null && session.isOpened()){
getUserData(session);
}
}
private void getUserData(final Session session){
Request request = Request.newMeRequest(session,
new Request.GraphUserCallback() {
@Override
public void onCompleted(GraphUser user, Response response) {
if(user != null && session == Session.getActiveSession()){
pictureView.setProfileId(user.getId());
userName.setText(user.getName());
getFriends();
}
if(response.getError() !=null){
}
}
});
request.executeAsync();
}
private void getFriends(){
Session activeSession = Session.getActiveSession();
if(activeSession.getState().isOpened()){
Request friendRequest = Request.newMyFriendsRequest(activeSession,
new GraphUserListCallback(){
@Override
public void onCompleted(List<GraphUser> users,
Response response) {
Log.i("INFO", response.toString());
}
});
Bundle params = new Bundle();
params.putString("fields", "id,name,friends");
friendRequest.setParameters(params);
friendRequest.executeAsync();
}
}