我不能使用socialauth-android的custom-ui项目来发布Facebook。
这是错误日志。
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密钥。
发布于 2015-10-31 16:51:23
你得到了403 Authentication Error,这显然意味着你的应用程序目前没有被授权在用户的Facebook资料上发布。
您尝试使用Facebook API的方式存在一些问题。我建议你使用最新的Facebook SDK for Android,因为一些旧的方法可能会被弃用。让我告诉你做这件事的正确方法。(我最近实现了最新的Facebook SDK)
使用Facebook SDK进行一些特定的操作需要一些特定的权限。例如,如果你想要你的应用程序在用户的个人资料上发布状态,你需要publish_actions权限。
Check Out上面写着,
For example, the publish_actions permission lets you post to a person's Facebook Timeline.
获取Permissions的
你需要向用户显示一个登录按钮,该按钮将要求他使用他的facebook帐户进行登录,并通知用户您的应用程序可能会对他的Facebook个人资料做什么。它将显示权限。在本例中,您需要添加一个具有publish_actions权限的登录按钮。一旦用户接受,您的应用程序将变为授权的以发布状态。
做有权限的Facebook登录过程的Complete Tutorial is here。
您将需要执行以下操作:
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_likes或user_status权限。如果您不需要它们,可以将其删除。
login之后的
在用户登录后,你会在你的session中得到一个Facebook的authentication token。所以现在你可以用它来发布用户的个人资料。
现在有很多方法可以在Facebook上发布帖子或状态。我想要讨论的第一个问题是使用Graph API
这里有一些代码,你可以用来发布到facebook上。
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文件中提到同样的内容。
https://stackoverflow.com/questions/33449453
复制相似问题