4

Facebookページの壁に投稿しようとしています。アプリ アクセス トークンを使用してユーザー ウォールに投稿できます。

DefaultFacebookClient を拡張して App Access Token を取得しました

public class ConnectionService extends DefaultFacebookClient{

public ConnectionService(String appId, String appSecret) {
    AccessToken accessToken = this.obtainAppAccessToken(appId, appSecret);
    this.accessToken = accessToken.getAccessToken();
}
}

これにより、appID と appSecret を使用してユーザー ウォールに投稿できます。しかし、ページ ウォールに投稿しようとすると、「ユーザーはこのアクションを実行するアプリケーションを承認していません」というエラーが表示されます。

誰でもアドバイスできますか?

4

4 に答える 4

6

Facebook ページのウォールに投稿するには、次の手順に従う必要があります。

  1. https://developers.facebook.com/tools/explorerにアクセスしてください。
  2. 「アクセストークンを取得」をクリック
  3. [拡張アクセス許可] タブで、manage_pages と publish_actions を選択し、[アクセス トークンの取得] をクリックします。
  4. [Graph API] の下の [Get call] の下に、「me/accounts」と入力して [送信] をクリックします。
  5. 以下の画面では、すべてのページとページ アクセス トークンを含む "data" json オブジェクトが表示されます。
  6. 目的のページ トークン アクセスを取得し、以下のコードの PAGE_ACCESS_TOKEN をこのトークンに置き換えます。
  7. PAGE_NAME をページ名 (URL 内のページ名スラッグ) に置き換えます。
  8. 以下のコードを実行すると、仕事をするはずです:)

final FacebookClient fb = new DefaultFacebookClient(PAGE_ACCESS_TOKEN); final Page page = facebookClient.fetchObject(PAGE_NAME, Page.class); facebookClient.publish("PAGE_NAME/feed", FacebookType.class, Parameter.with("message", "RestFB test"));

于 2014-12-08T16:30:50.127 に答える
1

アプリ アクセス トークンは最も基本的なもので、何も投稿できません。Facebook ページに (ページとして) 投稿するには、ページ アクセス トークンを取得する必要があります。

最初に「manage_pages」権限でユーザーを承認する必要があるため、このプロセスは少し複雑です。ユーザー アクセス トークンを使用して、API を呼び出してページ アクセス トークン (/me/accounts) を取得できます。

これらのリンクを参照してください。

ところで、REST API は非推奨です: https://developers.facebook.com/blog/post/616/

「クライアントトークン」(開発者設定>詳細)を試すこともできます。私はそれを使用したことはありませんが、最も簡単な解決策になる可能性があります. いずれにせよ、App Access Token は間違ったものです。

于 2013-10-21T10:18:34.297 に答える
0

Since u r generating access token from java class. u can set the permissions u require from user in ur manage app link from ur facebook profile page and get the access token here.....

于 2013-10-21T10:29:30.580 に答える
0

ユーザーの認証中に言及したスコープにmanage_pagesも含まれていることを確認してください。このエラーは、これをスコープに含めていない場合に発生します。これを参照

于 2013-10-21T10:17:36.627 に答える