我在 facebook 页面内做一个 Canvas 应用程序。
我非常简单的问题是:使用最新的 facebook SDK(今天刚刚下载),如果用户尚未授予您的应用程序的访问权限,SDK 中的 facebook 类会自动确定并尝试获得授权吗?
我可以通过以下方式手动获取我的应用程序的身份验证:
https://graph.facebook.com/oauth/authorize?client_id=<myClientID>&redirect_uri=<myRedirectURL>&type=user_agent&display=page&scope=publish_stream,%20user_about_me,%20user_likes,%20email
这一切都很好......但是当我尝试执行example.php在SDK中所做的事情时,它返回一个错误:
致命错误:未捕获的 OAuthException:无效的 OAuth 访问令牌签名。在第 1107 行的 /public_html/bridge/base_facebook.php 中抛出
因此我的问题是:我应该获得有效的 OAuth 访问令牌,还是我设置 facebook PHP SDK 错误?
这是我生成错误的完整 PHP 代码:
<?php
require 'facebook.php';
$facebook = new Facebook(array(
'app_id' => '<my app id>',
'app_secret' => '<my app secret>',
));
$user = $facebook->getUser();
$jared = $facebook->api('/jaredmark');
if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
// Login or logout url will be needed depending on current user state.
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
} else {
$loginUrl = $facebook->getLoginUrl();
}
此代码本质上是示例的直接复制/粘贴,并进行了一些小的编辑。