使用 restfb 获取页面访问令牌的正确方法是什么?
What's the correct way to obtain a page access token with restfb?
我需要从我的应用程序中 post Facebook 页面相册中的图像。
根据 resfb 文档,我正在实施 OAuth 流程。特别是我以这种方式创建了登录 url:
FacebookClient client = new DefaultFacebookClient(Version.VERSION_2_12);
String loginDialogUrlString = client.getLoginDialogUrl(APP_ID, REDIRECT_URL, scopeBuilder);
但现在我不明白我要创建页面访问令牌。
我试过使用这个:
AccessToken accessToken = client.obtainUserAccessToken(APP_ID, APP_SECRET, REDIRECT_URL, verificationCode); // verification code from the the previous login
但是当我尝试使用此 (USER) 访问令牌 post 我页面上的内容时,出现此错误:
com.restfb.exception.FacebookOAuthException: Received Facebook error response of type OAuthException: (#210) A page access token is required to request this resource. (code 210, subcode null) 'null - null'
那么,获取 PAGE 访问令牌的正确方法是什么?
注意 我正在使用此代码 post 照片:
byte[] imageAsBytes = fetchBytesFromImage();
JsonObject obj = client.publish(
"mypage",
JsonObject.class,
BinaryAttachment.with("cat.jpg", imageAsBytes, "image/jpeg"),
Parameter.with("message", "A cat")
);
对于使用用户访问令牌创建的 FacebookClient
,您可以调用:
Connection<Account> connection = client.fetchConnection("/me/accounts", Account.class);
然后遍历连接,您可以访问用户管理的页面的所有页面访问令牌。
我需要从我的应用程序中 post Facebook 页面相册中的图像。
根据 resfb 文档,我正在实施 OAuth 流程。特别是我以这种方式创建了登录 url:
FacebookClient client = new DefaultFacebookClient(Version.VERSION_2_12);
String loginDialogUrlString = client.getLoginDialogUrl(APP_ID, REDIRECT_URL, scopeBuilder);
但现在我不明白我要创建页面访问令牌。
我试过使用这个:
AccessToken accessToken = client.obtainUserAccessToken(APP_ID, APP_SECRET, REDIRECT_URL, verificationCode); // verification code from the the previous login
但是当我尝试使用此 (USER) 访问令牌 post 我页面上的内容时,出现此错误:
com.restfb.exception.FacebookOAuthException: Received Facebook error response of type OAuthException: (#210) A page access token is required to request this resource. (code 210, subcode null) 'null - null'
那么,获取 PAGE 访问令牌的正确方法是什么?
注意 我正在使用此代码 post 照片:
byte[] imageAsBytes = fetchBytesFromImage();
JsonObject obj = client.publish(
"mypage",
JsonObject.class,
BinaryAttachment.with("cat.jpg", imageAsBytes, "image/jpeg"),
Parameter.with("message", "A cat")
);
对于使用用户访问令牌创建的 FacebookClient
,您可以调用:
Connection<Account> connection = client.fetchConnection("/me/accounts", Account.class);
然后遍历连接,您可以访问用户管理的页面的所有页面访问令牌。