2

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アプリページのステータスに同じニュースを表示したいということだけです。

4

1 に答える 1

1

アプリに「manage_pages」権限を付与したユーザー(ページの管理者)であるページ アクセス トークンを使用して投稿する必要があります。

ドキュメント: https://developers.facebook.com/docs/authentication/pages/

于 2012-03-26T17:20:16.323 に答える