1

春のソーシャルで非常にシンプルなアプリを作ろうとしていますが、アプリは公開されていません。私が達成しようとしているのは、自分のウォールまたは管理しているページに投稿することです。

Facebook に manage_pages パーミッションへのアクセスを要求しようとすると、「ブログまたは CMS は管理しているアプリと統合されているため、これらのパーミッションを要求する必要はありません。アプリ管理者として、これらのパーミッションに既にアクセスでき、あなたのタイムラインまたは管理するページに投稿してください。アプリの開発者として追加することで、追加のユーザーにアクセスを提供できます。」

今コードで。春のソーシャルショーケースの例を少し変更しました。私の場合は次のとおりです。1) アプリから Facebook にログインします。2) 管理するページ数を取得しようとしています。3) ウォールに投稿します。

ステップ 2 では、次のコードを使用しています。

if (facebook.pageOperations().getAccounts() != null) {
        System.out.println("SIZE OF ACCCOUNTS IS: " + facebook.pageOperations().getAccounts().size());
    }

アカウントのサイズは常に 0 です。これは、私が管理者であるページに投稿できるはずなのに、それらを見ることさえできないことを意味します。私は正しいですか?

ステップ 3 の場合:

facebook.feedOperations().updateStatus("I'm trying out Spring Social!");
    facebook.feedOperations().post(new PostData("me").message("I'm trying out Spring Social!")
        .link("http://www.springsource.org/spring-social", null, "Spring Social", "The Spring Social Project", "Spring Social is an extension to Spring to enable applications to connect with service providers."));
    System.out.println("FEED POSTED");

これらの試みは両方とも、次の例外で失敗します。

org.springframework.social.InsufficientPermissionException: この操作に対する権限が不十分です。

誰か助けてくれませんか?

4

1 に答える 1

0

ログイン時に必要な権限を要求/付与していないようです。最初に行う必要があるのは、ログインを実装し、ログイン中に正しいスコープ、つまりアクセス許可 ( ) が含まれていることを確認することですmanage_pages。要件には公開も含まれるため、ページとして公開するか自分自身として公開するかに応じて、これらの権限publish_pagesを含めます。たとえば、 JS SDKpublish_actionsを使用している場合、次のようになります。

 FB.login(function(response) {
   // handle the response
 }, {scope: 'manage_pages, publish_pages, publish_actions'});

これを行うと、ログイン時に、これらの権限を付与するかどうかを尋ねられます。付与すると、アクセス トークンにこれらのアクセス許可が含まれ、呼び出しを行うことができるようになり、/me/accounts管理するページとそれぞれのアクセス トークンのリストが表示されます。次のようになります。

"data": [
    {
      "access_token": "CAACEdEose0cBAAy...",
      "category": "Food/Grocery",
      "name": "Page Name",
      "id": "1234567890",
      "perms": [
        "ADMINISTER",
        "EDIT_PROFILE",
        "BASIC_ADMIN"
      ]
    },
    ...
    ]

自分自身として発行する場合は、現在のユーザー アクセス トークンを引き続き使用できます。それ以外の場合は、ページとして公開する場合は、上記の応答からページ アクセス トークンを取得し、それを使用してページ ID に対して POST 要求を行います。

また、公開用ではなく自分用にアプリを作成している場合、管理者であるか、アプリで何らかの役割を持っている場合は、レビューのためにこれらのアクセス許可を送信する必要はありません。

ここで、さらに詳しいコンテキストを見つけることができるかもしれません。

于 2015-07-13T10:52:33.937 に答える