图形 API - 访问令牌(致命错误:未捕获的 OAuthException:必须使用活动访问令牌来查询有关当前用户的信息。)

发布于 2024-12-09 05:45:44 字数 593 浏览 1 评论 0原文

我正在使用 Facebook PHP SDK 并尝试将图像发布到用户的墙上。但是我收到以下错误:

“致命错误:未捕获的 OAuthException:必须使用活动访问令牌来查询有关当前用户的信息。在第 1033 行的 C:\development...\base_facebook.php 中抛出”

我知道我的访问令牌无效,但是我不明白为什么。我有全局 facebook 对象,并且我在我的网站的子网站中使用 $facebook->api 函数(不同的网址,我最初在其中询问了访问令牌)。我的问题是我的子网站是否需要新的访问令牌?基本上,这意味着我还需要新的应用程序密钥和密码,因为 Facebook 只允许重定向开发者站点中指定的一个页面。

下面是非常基本的 api 调用:

$upload_photo = $this->facebook->api('/me/photos?access_token='. $this->facebook->getAccessToken(), 'post', $photo_details);

I'm using Facebook PHP SDK and trying to post image to the user's wall. However I get error below:

"Fatal error: Uncaught OAuthException: An active access token must be used to query information about the current user. thrown in C:\developing...\base_facebook.php on line 1033"

I understand that my access token is not valid, but I can't understand why. I have global facebook object and I'm using $facebook->api function in the subsite of my website (different url, where I have orginally asked access token). My question is that do I need new access tokens for my subsites? Basicly that would mean that I need new app key and secret code as well, because Facebook allows redirecting only for one page spesified in Developer Site.

Below is quite basic api call:

$upload_photo = $this->facebook->api('/me/photos?access_token='.
$this->facebook->getAccessToken(), 'post', $photo_details);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

奢欲 2024-12-16 05:45:44

我不是 100% 确定,但我认为问题与域无关。当您调用时

$this->facebook->getAccessToken();

,可能会为您提供用户访问令牌和您正在使用的 Facebook 应用程序的访问令牌。要在用户的墙上发帖,您将需要用户(或页面)的访问令牌,您要代表该用户(或页面)发布墙上的帖子。

如果使用的令牌是正确的,则另一个原因可能是您的应用程序没有发布墙所需的权限。您的应用需要扩展权限,例如“publish_stream”权限。

也许本教程可以进一步帮助您:
http://thinkdiff.net/ facebook/php-sdk-3-0-graph-api-base-facebook-connect-tutorial/

它解释了如何生成 FB-Login 链接并需要扩展权限。

I'm not 100% sure, but I think the problem is not domain-related. When you call

$this->facebook->getAccessToken();

this could give you both a user access token and an access token for the facebook application you are using. And to post on a user's wall you will need an access token for a user (or page), on behalf of which you want to publish the wall post.

If the used token is the right one, then another reason could be, that your application doesn't have the needed permissions to post a wall. You will need extended permissions for your app, like the "publish_stream" permission.

Maybe this tutorial can help you further:
http://thinkdiff.net/facebook/php-sdk-3-0-graph-api-base-facebook-connect-tutorial/

It explains how to generate a FB-Login link and require extended permissions.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文