首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用socialauth-android项目的自定义ui项目发布到Facebook

无法使用socialauth-android项目的自定义ui项目发布到Facebook
EN

Stack Overflow用户
提问于 2015-10-31 16:06:55
回答 1查看 69关注 0票数 0

我不能使用socialauth-androidcustom-ui项目来发布Facebook。

这是错误日志。

代码语言:javascript
复制
10-31 13:18:05.124: D/SocialAuthError(21880): org.brickred.socialauth.exception.SocialAuthException: org.brickred.socialauth.exception.SocialAuthException: Status not updated. Return Status code :403
10-31 13:18:05.124: W/System.err(21880): org.brickred.socialauth.android.SocialAuthError: Message Not Posted
10-31 13:18:05.124: W/System.err(21880):    at org.brickred.socialauth.android.SocialAuthAdapter$6.run(SocialAuthAdapter.java:868)
10-31 13:18:05.124: W/System.err(21880):    at java.lang.Thread.run(Thread.java:818)

我找不到问题所在。我使用的是从Github源码获得的相同API密钥。

EN

回答 1

Stack Overflow用户

发布于 2015-10-31 16:51:23

你得到了403 Authentication Error,这显然意味着你的应用程序目前没有被授权在用户的Facebook资料上发布。

您尝试使用Facebook API的方式存在一些问题。我建议你使用最新的Facebook SDK for Android,因为一些旧的方法可能会被弃用。让我告诉你做这件事的正确方法。(我最近实现了最新的Facebook SDK)

  • You需要一个permission

使用Facebook SDK进行一些特定的操作需要一些特定的权限。例如,如果你想要你的应用程序在用户的个人资料上发布状态,你需要publish_actions权限。

Check Out上面写着,

For example, the publish_actions permission lets you post to a person's Facebook Timeline.

获取Permissions的

  • How

你需要向用户显示一个登录按钮,该按钮将要求他使用他的facebook帐户进行登录,并通知用户您的应用程序可能会对他的Facebook个人资料做什么。它将显示权限。在本例中,您需要添加一个具有publish_actions权限的登录按钮。一旦用户接受,您的应用程序将变为授权的以发布状态。

做有权限的Facebook登录过程的Complete Tutorial is here

您将需要执行以下操作:

代码语言:javascript
复制
LoginButton authButton = (LoginButton) view.findViewById(R.id.authButton);
authButton.setFragment(this);
authButton.setReadPermissions(Arrays.asList("user_likes", "user_status", "publish_actions"));
return view;

因此,您可以看到,我们正在请求用户授予您publish_actions权限。不强制包含user_likesuser_status权限。如果您不需要它们,可以将其删除。

login之后的

  • Next是什么

在用户登录后,你会在你的session中得到一个Facebook的authentication token。所以现在你可以用它来发布用户的个人资料。

  • How到post

现在有很多方法可以在Facebook上发布帖子或状态。我想要讨论的第一个问题是使用Graph API

这里有一些代码,你可以用来发布到facebook上。

代码语言:javascript
复制
Session session = Session.getActiveSession();

new Request(
    session,
    "/me/feed",
    null,
    HttpMethod.POST,
        new Request.Callback() {
            public void onCompleted(Response response) {

            }
        }
).executeAsync();

笔记

你还需要在facebook上创建开发者账户,将你的应用程序添加到它的仪表板上,生成一个app_id,并在你的AndroidManifest.xml文件中提到同样的内容。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33449453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档