Я видел много вопросов, подобных этому в Stack Overflow, но они не решили мою проблему. Я говорил this, this, а также ссылки на документацию, как this и thisКак мне получить список друзей из FaceBook?
я использовал LoginButton
для входа в моем приложении.
Я могу получить пользователя (который вошел в систему) Имя, Email, и т.д., используя следующий код (он отлично работает):
private FacebookCallback<LoginResult> callback = new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
AccessToken accessToken = loginResult.getAccessToken();
Profile profile = Profile.getCurrentProfile();
GraphRequest request = GraphRequest.newMeRequest(
loginResult.getAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(
JSONObject object,
GraphResponse response) {
// Application code
try {
email = object.getString("email");
} catch (JSONException e) {
e.printStackTrace();
}
Log.e("EMAIL",email);
Log.e("GraphResponse", "-------------" + response.toString());
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,link,gender,birthday,email");
request.setParameters(parameters);
request.executeAsync();
}
с разрешениями:
loginButton.setReadPermissions("user_friends");
loginButton.registerCallback(callbackManager, callback);
Я получил JSON в LogCat. Но теперь я хочу, чтобы получить список Друзей, поэтому я написал код, видя документации и немного изменил код следующим образом:
private FacebookCallback<LoginResult> callback = new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
AccessToken accessToken = loginResult.getAccessToken();
Profile profile = Profile.getCurrentProfile();
// I saw following code in Documentation
new GraphRequest(
AccessToken.getCurrentAccessToken(),
"/{friendlist-id}", /* I actually tried ,friend-list-id' , /me/friends' , '/me/taggable_Friends' and many*/
null,
HttpMethod.GET,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
// handle the result
Log.d("RESPONSE KBT",response.toString());
}
}
).executeAsync();
}
с разрешениями:
loginButton.setReadPermissions(Arrays.asList("email", "user_friends","read_custom_friendlists"));
loginButton.registerCallback(callbackManager, callback);
Я получаю это в моем LogCat:
RESPONSE KBT﹕ {Response: responseCode: 404, graphObject: null, error: {HttpStatus: 404, errorCode: 803, errorType: OAuthException, errorMessage: (#803) Some of the aliases you requested do not exist: {friendlist-id}}}
Вы можете получить только 2 «тип» друзей: TaggableFriends или InvitableFriends (для игры приложение), если бы taggableFriends я код .. –
@Michele Lacorte: Я тоже пробовал taggablefriends, Я получил тот же самый логарифм. Это будет полезно, если вы поделитесь своим кодом. (В любом случае, это не игровое приложение, это простое приложение, чтобы показать список друзей, и я действительно делаю это для образовательной цели) – Ganesh
Вы хотите пометить друзей? если нет, не используйте taggable_friends. – luschn