Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过spring social InsufficientPermissionException发布到facebook墙_Java_Spring_Facebook_Spring Social Facebook - Fatal编程技术网

Java 通过spring social InsufficientPermissionException发布到facebook墙

Java 通过spring social InsufficientPermissionException发布到facebook墙,java,spring,facebook,spring-social-facebook,Java,Spring,Facebook,Spring Social Facebook,我正在尝试用spring social制作一个非常简单的应用程序,该应用程序不面向公众。我试图实现的是张贴到我的墙上或我管理的页面上 试图向facebook请求访问manage_pages的权限,他们拒绝了,因为正如他们所说的那样“您不需要申请这些权限,因为您的博客或CMS与您管理的应用程序集成。作为应用程序管理员,您已经可以访问这些权限,并发布到您的时间线或您管理的页面。您可以通过将其他用户添加为应用程序的开发人员来访问他们。” 现在在代码中,我修改了一个spring social showc

我正在尝试用spring social制作一个非常简单的应用程序,该应用程序不面向公众。我试图实现的是张贴到我的墙上或我管理的页面上

试图向facebook请求访问manage_pages的权限,他们拒绝了,因为正如他们所说的那样“您不需要申请这些权限,因为您的博客或CMS与您管理的应用程序集成。作为应用程序管理员,您已经可以访问这些权限,并发布到您的时间线或您管理的页面。您可以通过将其他用户添加为应用程序的开发人员来访问他们。”

现在在代码中,我修改了一个spring social showcase示例。我的案例如下: 1) 我通过我的应用程序登录到facebook 2) 正在尝试获取我管理的页数 3) 贴到我的墙上

对于第二步,我使用以下代码:

if (facebook.pageOperations().getAccounts() != null) {
        System.out.println("SIZE OF ACCCOUNTS IS: " + facebook.pageOperations().getAccounts().size());
    }
帐户的大小始终为0。因此,这意味着虽然我应该能够发布到我是管理员的页面,但我甚至无法看到它们。我是否正确

现在,对于第三步:

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:此操作的权限不足


有人能帮忙吗?

您似乎没有请求/授予登录期间所需的权限。您需要做的第一件事是实现登录并确保包含正确的权限范围(
管理页面
)在登录期间。由于您的要求还包括发布,因此根据您是想作为页面发布还是自己发布,请包括这些权限
publish_pages
和/或
publish_actions
。例如,如果您使用的是:

 FB.login(function(response) {
   // handle the response
 }, {scope: 'manage_pages, publish_pages, publish_actions'});
"data": [
    {
      "access_token": "CAACEdEose0cBAAy...",
      "category": "Food/Grocery",
      "name": "Page Name",
      "id": "1234567890",
      "perms": [
        "ADMINISTER",
        "EDIT_PROFILE",
        "BASIC_ADMIN"
      ]
    },
    ...
    ]
完成此操作后,登录时,系统将提示您是否要授予这些权限。授予时,您的访问令牌将包含这些权限,并且您将能够调用
/me/accounts
,这将为您提供一个您管理的页面列表及其各自的访问令牌。它将如下所示:

 FB.login(function(response) {
   // handle the response
 }, {scope: 'manage_pages, publish_pages, publish_actions'});
"data": [
    {
      "access_token": "CAACEdEose0cBAAy...",
      "category": "Food/Grocery",
      "name": "Page Name",
      "id": "1234567890",
      "perms": [
        "ADMINISTER",
        "EDIT_PROFILE",
        "BASIC_ADMIN"
      ]
    },
    ...
    ]
如果要以自己的身份发布,则可以继续使用当前用户访问令牌。否则,如果要以页面的形式发布,请从上面的响应中获取页面访问令牌,并使用该令牌针对页面id发出POST请求

如果你是为自己而不是为公众创建应用程序,那么只要你是管理员或在应用程序中有一些角色,你就不需要提交这些权限进行审核


您可能可以找到更多的上下文。

似乎您在登录期间没有请求/授予所需的权限。您需要做的第一件事是实现登录并确保包含正确的范围,即权限(
管理页面
)在登录期间。由于您的要求还包括发布,因此根据您是想作为页面发布还是自己发布,请包括这些权限
publish_pages
和/或
publish_actions
。例如,如果您使用的是:

 FB.login(function(response) {
   // handle the response
 }, {scope: 'manage_pages, publish_pages, publish_actions'});
"data": [
    {
      "access_token": "CAACEdEose0cBAAy...",
      "category": "Food/Grocery",
      "name": "Page Name",
      "id": "1234567890",
      "perms": [
        "ADMINISTER",
        "EDIT_PROFILE",
        "BASIC_ADMIN"
      ]
    },
    ...
    ]
完成此操作后,登录时,系统将提示您是否要授予这些权限。授予时,您的访问令牌将包含这些权限,并且您将能够调用
/me/accounts
,这将为您提供一个您管理的页面列表及其各自的访问令牌。它将如下所示:

 FB.login(function(response) {
   // handle the response
 }, {scope: 'manage_pages, publish_pages, publish_actions'});
"data": [
    {
      "access_token": "CAACEdEose0cBAAy...",
      "category": "Food/Grocery",
      "name": "Page Name",
      "id": "1234567890",
      "perms": [
        "ADMINISTER",
        "EDIT_PROFILE",
        "BASIC_ADMIN"
      ]
    },
    ...
    ]
如果要以自己的身份发布,则可以继续使用当前用户访问令牌。否则,如果要以页面的形式发布,请从上面的响应中获取页面访问令牌,并使用该令牌针对页面id发出POST请求

如果你是为自己而不是为公众创建应用程序,那么只要你是管理员或在应用程序中有一些角色,你就不需要提交这些权限进行审核


您可能可以找到更多的上下文。

您在哪里以及如何请求权限?当您登录应用程序时,是否真的有人向您请求这些权限?不,登录时没有人向我请求权限,当我提交这些权限(如管理页面以供审阅)时,他们告诉我,我不需要这些权限,因为我是管理员。Where和你是如何请求权限的?当你登录到你的应用程序时,你真的会被请求这些权限吗?不,登录时,我没有被请求权限,当我提交这些权限(如管理页面以供审阅)时,他们告诉我,我不需要这些权限,因为我是管理员。这是有道理的,因为当我为r提交管理页面时eview他们告诉我,我不需要这些,因为该应用程序不面向公众,我是该应用程序的管理员。你的回答有道理,我会尝试一下,让你知道,感谢你的回答,这是有道理的,因为当我提交管理页面供审查时,他们告诉我,我不需要这些,因为该应用程序不面向公众,并且我是该应用程序的管理员。你的回答很有道理,我会尝试一下,让你知道,谢谢你的回答