publish_actions не запрашивается в новом SDK
-
20-12-2019 - |
Вопрос
Мы используем
Permission[] permissions = new Permission[] {
Permission.PUBLIC_PROFILE,
Permission.EMAIL,
Permission.USER_FRIENDS,
Permission.PUBLISH_ACTION
};
SimpleFacebookConfiguration configuration = new SimpleFacebookConfiguration.Builder()
.setAppId(getResources().getString(R.string.app_id))
.setNamespace("ournamespace")
.setPermissions(permissions)
.build();
SimpleFacebook.setConfiguration(configuration);
В операции входа в систему:
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
mSimpleFacebook.onActivityResult(this, requestCode, resultCode, data);
super.onActivityResult(requestCode, resultCode, data);
}
@Override
public void onResume() {
super.onResume();
mSimpleFacebook = SimpleFacebook.getInstance(this);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
ctx = this;
ImageView fbBtn = (ImageView) findViewById(R.id.authButton);
fbBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mSimpleFacebook.login(onLoginListener);
}
});
}
Однако сгенерированный токен доступа не включает разрешение publish_actions...что здесь не так?
Спасибо!
Решение
В одном из последних изменений этой библиотеки добавлен новый вариант для SimpleFacebookConfiguration
.Это называется setAskForAllPermissionsAtOnce
.Если значение верно, то он запрашивает все разрешения сразу, и у вас будут разрешения публикации в Access
если пользователь примет его на логин.
Если это ложное, то он ведет себя по-другому.Только когда пользователь делает свое первое действие публикации, только тогда диалоговое окно с разрешениями будет отображаться впервые.Значение по умолчанию не является ложным, поскольку этот
Вы также можете использовать метод SimpleFacebook.requestNewPermissions()
, чтобы снова попросить разрешения или для нового в середине вашего приложения, когда вы решите, что это хорошо, чтобы попросить от пользователя.
Другие советы
Ваше приложение должно быть просмотрено пользователями FaceBook, если вам нужно publish_actions
разрешение.
Просмотр не требуется, если вам нужно только public profile
, Email
, App friends
разрешение.
И я предполагаю сгенерировать accessToken на основе publish_actions
с вашего разрешения, ваше приложение необходимо просмотреть.
Смотрите ссылку для разработчиков facebook,
https://developers.facebook.com/docs/facebook-login/permissions/v2.0