一日中、自分のプログラムを使用して自分のアカウントの Facebook ウォールに投稿する方法を理解しようとしています。Facebook 開発者ページのチュートリアルに従いましたが、役に立ちませんでした。現在、私はこのリクエストコードを持っています:
Bundle params = new Bundle();params.putString("app", "http://samples.ogp.me/##############");
// List<String> permissions = new ArrayList<String>();
// permissions.add("publish_actions");
// Session.getActiveSession().requestNewPublishPermissions(new NewPermissionsRequest(getMainActivity(), permissions));
Request request = new Request(
Session.getActiveSession(),
"me/appnamespace:test",
params,
HttpMethod.POST
);
Response response = request.executeAndWait();
Log.print("Response: " + response.toString());
これが行うことは、次のエラーを生成することだけです。
Response: {Response: responseCode: 200, graphObject: null, error: {HttpStatus: -1, errorCode: -1, errorType: null, errorMessage: null}, isFromCache:false}
これにより、何が間違っているかについての情報はほとんど得られません。200 エラー コードは権限に関係があるようです。
このページでこのテキストを見つけました:
エラー:
{ "error": { "message": "(#200) 拡張アクセス許可が必要です: publish_actions", "type": "OAuthException", "code": 200 } }
理由:
アプリをタイムラインに公開する権限がありません。[アクセス トークンの取得] をクリックし、[拡張アクセス許可] タブをクリックします。publish_actions 権限を選択して、テストを再度実行してください。
何らかの理由で、Graph API Explorer の拡張アクセス許可に publish_actions を追加できません。そのためのオプションがないためです! publish_streams のみ。だから私はそれを追加します。そこで次のエラーが発生します。
{
"error": {
"message": "(#10) Application does not have permission for this action",
"type": "OAuthException",
"code": 10
}
}
Facebook のアプリケーションのアクセス許可ページで、ユーザーと友人のアクセス許可に publish_actionsを追加し、拡張アクセス許可に publish_stream を追加しました (そこに publish_actions を追加することはできません)。
結局、私が何をしても、私が必要としていない WebDialog を使用しない限り、Facebook のタイムラインにメッセージを投稿することはできません。
何が間違っているのかについての選択肢がありません。どんなアイデアでも大歓迎です。