私はFacebookのキャンバスアプリを開発しましたが、これはiFrame内で実行されていますが、今はウェブサイトプラットフォームに移行したいと考えています。
したがって、私のアプリケーションはiFrame内ではなく私のウェブサイトで動作します。
変更は何が必要ですか?ウェブサイトプラットフォーム上のFacebookアプリケーション
私のアプリは、基本的にプロフィール写真に簡単な効果を加え、それをユーザーに表示します。
[私はキャンバスからウェブサイトにプラットフォームを変更しようとしましたが、機能しませんでした。それはここで
マイキャンバスベースのアプリケーションのコード
のconfig.phpないiFrameの内部で、自分のサイト上でアプリを実行したサンプルサイトです] ... INVALIDは、リクエストエラーを結んで示しました。
<?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はありません。ですから、_あなたのコード_が期待する部分を変更して、このエラーメッセージを出力します。 – CBroe
@CBroe plzは、もう少し詳しく説明しています。ありがとう – Sourav
ここにあなたのコードを知っている人はいません。私はあなたがPHP SDKのログインヘルパーの1つを使用したと推測することができます - そのため、適切なもの(リダイレクトヘルパーまたはjavascriptヘルパー;両方のドキュメントに例があります)のためにその部分を切り替える必要があります。 – CBroe