您收到 403 Authentication Error
,这显然意味着您的应用目前无权在用户的 Facebook 个人资料上发布。
您尝试使用 Facebook API 的方式存在一些问题。我建议您使用最新的 Android 版 Facebook SDK,因为某些较旧的方法可能已被弃用。让我告诉您正确执行此操作的方法。(我最近实现了最新的 Facebook SDK)
使用 Facebook SDK 执行某些特定操作需要一些特定权限。例如,publish_actions
如果您希望您的应用在用户的个人资料上发布状态,您需要获得许可。
看看它说,
For example, the publish_actions permission lets you post to a person's Facebook Timeline.
您需要向用户显示一个登录按钮,该按钮将要求他使用他的 Facebook 帐户登录,并通知用户您的应用程序可以使用他的 Facebook 个人资料做什么。它将显示权限。在您的情况下,您需要添加一个具有publish_actions
权限的登录按钮。一旦用户接受它,您的应用就会被授权发布状态。
完整教程在这里用于使用权限执行 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
与session
Facebook 相关的信息。所以现在您可以使用它在用户的个人资料上发布。
现在有很多方法可以在 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
文件中提及相同的内容。
更多信息