我已经成功开发了Facebook画布应用程序[在iFrame内运行],但现在我想移动到网站平台。
所以我的应用程序在我的网站上运行,而不是在iFrame内。
需要做些什么改变?网站平台上的Facebook应用程序PHP - 图表API
我的应用程序基本上对简档照片执行简单的效果,然后将其显示给用户。
[我试过改变平台从画布到网站,但它没有奏效。它显示无效签名的请求错误...]
下面是一个简单的网站,运行在其网站上的应用程序,而不是一个iFrame http://in.testfun.net/
我的画布基于应用程序代码
里面的config.php
<?php
$fb = new Facebook\Facebook([
'app_id' => '**************',
'app_secret' => '1ef4838500bb8c401a18833dbcdfa27e',
'default_graph_version' => 'v2.6', ]);
$helper = $fb->getCanvasHelper();
$permissions = ['public_profile','user_posts','user_location'];
$fbURL = 'https://apps.facebook.com/mytestapp';
$URL = 'https://localhost/apps/testApp/';
?>
登录-callback.php
<?php
session_start();
require_once '../fbsdk/autoload.php';
include 'config.php';
try {
$accessToken = $helper->getAccessToken();
}
catch(FacebookExceptionsFacebookResponseException $e) {
echo 'Graph returned an error: ' . $e->getMessage(); exit;
}
catch(FacebookExceptionsFacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit;
}
if (isset($accessToken)) {
$_SESSION['facebook_access_token'] = (string)$accessToken; header('Location: ' . $fbURL . $app);
exit;
}
else { echo 'Oops unknown error!'; }
?>
的index.php
<?php
session_start();
require_once '../fbsdk/autoload.php';
require_once '../fbsdk/FacebookRequest.php';
use Facebook\FacebookRequest;
include 'config.php';
try {
$accessToken = $helper->getAccessToken();
$_SESSION['facebook_access_token'] = $accessToken;
} catch(Facebook\Exceptions\FacebookResponseException $e) {
echo 'Graph returned an error: ' . $e->getMessage(); exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit;
}
if (isset($accessToken)) {
if (isset($_SESSION['facebook_access_token'])) {
$fb->setDefaultAccessToken($_SESSION['facebook_access_token']);
} else {
$_SESSION['facebook_access_token'] = (string) $accessToken;
$oAuth2Client = $fb->getOAuth2Client();
$longLivedAccessToken = $oAuth2Client->getLongLivedAccessToken($_SESSION['facebook_access_token']);
$_SESSION['facebook_access_token'] = (string) $longLivedAccessToken;
$fb->setDefaultAccessToken($_SESSION['facebook_access_token']);
}
}
对外部网站应用程序没有signed_request。因此,请更改_your code_期望的任何部分,并输出此错误消息。 – CBroe
@CBroe PLZ解释更多,更好的例子。谢谢 – Sourav
这里没有人知道你的代码。我只能猜测你使用了PHP SDK的一个登录助手 - 所以你需要将相应的部分切换掉(重定向助手或者JavaScript助手;因为这两个文档都有示例) – CBroe