新しい SDK では、publish_actions は要求されません
-
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 権限が含まれていません...ここで何が間違っているのでしょうか?
ありがとう!
解決
このライブラリの最近の変更の1つで、SimpleFacebookConfiguration
に新しいオプションを追加しました。それはsetAskForAllPermissionsAtOnce
と呼ばれます。値がtrueの場合、それはすべての権限を一度に要求し、ユーザーがログインでそれを受け入れると、AccessTokenに公開権限を持ちます。
FALSEの場合、それは異なる方法で動作します。ユーザーが最初に発行されたアクションを作成する場合にのみ、アクセス権を持つダイアログが初めて表示されます。このはFacebookポリシーに対してを準拠しているため、デフォルト値はfalseです。しかし、あなたはそれを変えることができます。ここですべてのオプションを確認してください: https://github.com/sromku/android-sImple-Facebook#設定オプション
SimpleFacebook.requestNewPermissions()
メソッドを使用して、ユーザーから尋ねるのが良いと判断したときに、Appフローの途中でアクセス許可を要求することもできます。
他のヒント
必要に応じてアプリを FaceBook 担当者にレビューしてもらう必要があります publish_actions
許可。
必要なだけであればレビューは不要です public profile
, Email
, App friends
許可。
そして、私はそれに基づいてAccessTokenを生成すると思います publish_actions
許可を得るには、アプリを審査する必要があります。
Facebook 開発者リンクを参照してください。
https://developers.facebook.com/docs/facebook-login/permissions/v2.0