2016-07-31 81 views
-4

我已经成功开发了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']); 
} 
} 
+0

对外部网站应用程序没有signed_request。因此,请更改_your code_期望的任何部分,并输出此错误消息。 – CBroe

+0

@CBroe PLZ解释更多,更好的例子。谢谢 – Sourav

+0

这里没有人知道你的代码。我只能猜测你使用了PHP SDK的一个登录助手 - 所以你需要将相应的部分切换掉(重定向助手或者JavaScript助手;因为这两个文档都有示例) – CBroe

回答

相关问题