Java 通过spring social InsufficientPermissionException发布到facebook墙
我正在尝试用spring social制作一个非常简单的应用程序,该应用程序不面向公众。我试图实现的是张贴到我的墙上或我管理的页面上 试图向facebook请求访问manage_pages的权限,他们拒绝了,因为正如他们所说的那样“您不需要申请这些权限,因为您的博客或CMS与您管理的应用程序集成。作为应用程序管理员,您已经可以访问这些权限,并发布到您的时间线或您管理的页面。您可以通过将其他用户添加为应用程序的开发人员来访问他们。” 现在在代码中,我修改了一个spring social showcase示例。我的案例如下: 1) 我通过我的应用程序登录到facebook 2) 正在尝试获取我管理的页数 3) 贴到我的墙上 对于第二步,我使用以下代码: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
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他们告诉我,我不需要这些,因为该应用程序不面向公众,我是该应用程序的管理员。你的回答有道理,我会尝试一下,让你知道,感谢你的回答,这是有道理的,因为当我提交管理页面供审查时,他们告诉我,我不需要这些,因为该应用程序不面向公众,并且我是该应用程序的管理员。你的回答很有道理,我会尝试一下,让你知道,谢谢你的回答