我无法使用custom-ui
的{{1}}项目发布Facebook。
这是错误日志。
socialauth-android
我无法找到问题。我使用的是从Github源获得的相同API密钥。
答案 0 :(得分:0)
您将获得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.
您需要向用户显示一个登录按钮,该按钮将要求他使用他的Facebook帐户登录并通知用户您的应用可能对他的Facebook个人资料做了什么。它将显示权限。在您的情况下,您需要添加具有publish_actions
权限的登录按钮。用户接受后,您的应用就会授权发布状态。
Complete Tutorial is here用于执行具有权限的Facebook登录过程。
您需要执行以下操作,
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
权限不是强制性的。如果您不需要,可以将其删除。
用户登录后,您的authentication token
会在Facebook上获得session
。所以现在您可以使用它来发布用户的个人资料。
现在有很多方法可以在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
文件中提及相同内容。