2016-07-31 12 views
-4

私はFacebookのキャンバスアプリを開発しましたが、これはiFrame内で実行されていますが、今はウェブサイトプラットフォームに移行したいと考えています。
したがって、私のアプリケーションはiFrame内ではなく私のウェブサイトで動作します。
変更は何が必要ですか?ウェブサイトプラットフォーム上のFacebookアプリケーション

私のアプリは、基本的にプロフィール写真に簡単な効果を加え、それをユーザーに表示します。

[私はキャンバスからウェブサイトにプラットフォームを変更しようとしましたが、機能しませんでした。それはここで

http://in.testfun.net/

マイキャンバスベースのアプリケーションのコード

の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']); 
} 
} 
+0

外部ウェブサイトのアプリケーション用のsigned_requestはありません。ですから、_あなたのコード_が期待する部分を変更して、このエラーメッセージを出力します。 – CBroe

+0

@CBroe plzは、もう少し詳しく説明しています。ありがとう – Sourav

+0

ここにあなたのコードを知っている人はいません。私はあなたがPHP SDKのログインヘルパーの1つを使用したと推測することができます - そのため、適切なもの(リダイレクトヘルパーまたはjavascriptヘルパー;両方のドキュメントに例があります)のためにその部分を切り替える必要があります。 – CBroe

答えて

0

私が理解できるように、あなたはOAuthのでFacebookのログインページを開きたいです。

https://developers.facebook.com/docs/php/howto/example_facebook_login

+0

また、あなたはfacebookに2つの異なるアプリケーションがあることに注意してください env。あなたがプロダクションにコードを手に入れたら、プロダクションモード設定のためにapp_idとsecret idを変更してください。 – kemalatila

関連する問題