Facebook のアプリ ページにコメントを投稿しようとしています。私のアプリケーションは、Spring MVC を使用して Java で記述されています。私が実装したい機能は、バックオフィスから自分のページにテキストを投稿するたびに、同じメッセージを Facebook ページに投稿することです。これまでのところ、私はこれを Twitter で行ってきましたが、非常にうまく機能しています。Facebook で問題が発生しました。私が見つけたものから、ほぼ最新の唯一の API は RestFB です。例が示すように、次のことを試しました。
FacebookClient facebookClient = new DefaultFacebookClient(MY_ACCESS_TOKEN);
FacebookType publishMessageResponse =
facebookClient.publish("me/feed", FacebookType.class,
Parameter.with("message", "RestFB test"));
https://developers.facebook.comでアプリを作成し、そこからアクセス トークンを取得しました。しかし、これにより、適切な権限がないという例外が発生しました。Web を検索していたところ、次の投稿に遭遇しました: Facebook: アプリの招待状を送信
そして、私はこの例も試しました。結果は、正しい権限がないことと同じでした。私が与える権限を再確認しましたが、関連するすべての権限が許可されています。
誰か助けてください。このAPIは最新ですか?私が確認したところ、最後に公開された日付は 2011 年 10 月でした。Facebook が新年の後にいくつかの変更を行ったことを知っています。さらに、他に優れた API はありますか? 最後に、誰かがこれを行う方法を知っていれば、ここに例を投稿できます。
@アレクサンドル @Tartoth
現時点で自分自身であるページの管理者と一緒に投稿していますが、それでもエラーが発生します。コメントを投稿するために使用しているコードは次のとおりです。私はこれに慣れていないので、何か間違ったことをしているかもしれません
String tokenUrl = "https://graph.facebook.com/oauth/access_token?client_id=" + appId + "&client_secret=" + appSecret
+ "&grant_type=client_credentials";
HttpClient client = new HttpClient();
HttpMethod method = new GetMethod(tokenUrl);
client.executeMethod(method);
String rawAccessToken = new String(method.getResponseBody());
String accessToken = rawAccessToken.split("=")[1];
FacebookClient facebookClient = new DefaultFacebookClient(accessToken);
String to = appId +"/feed";
facebookClient.publish(to, FacebookType.class,
Parameter.with(msg, "RestFB test"));
更新:以前の問題を解決しました。そして今、私のアプリはアプリトークンを取得しており、それを使用してメッセージを公開できますが、問題はそれらのメッセージをアプリページ自体で表示できないことです。https://graph.facebook.com/publishedMessageIdを使用してアクセスできるため、メッセージが投稿されていることがわかります。今、私の新しい質問は次のとおりです。
これは、アプリ ページに投稿を表示する正しい方法ですか? この質問の理由は、アプリ ページを Facebook から直接開くと、更新ステータスしか表示されないためです。しかし、RestFb api を見ていると、アプリのステータスを更新する方法についての説明がありません。
これがうまくいかない場合は、アプリとしてステータスを更新する方法を誰かに説明してもらえますか。私が達成したいのは、Webアプリケーションで何かを変更したとき(ニュースを公開するという点で)、Facebookアプリページのステータスに同じニュースを表示したいということだけです。