मैं अपने मौजूदा एफबी ऐप्स को अपग्रेड कर रहा हूं, और एक सरल PHP आईफ्रेम कैनवास ऐप को अधिकृत और प्रमाणित करने के साथ-साथ एसएसएल का उपयोग करने के लिए पूरी तरह से बोनकर्स चला रहा हूं (। कभी भी कई उदाहरणों को नहीं देखा ...फेसबुक कैनवास ऐप "redirect_uri" प्रमाणीकरण और प्रमाणीकरण के बाद iframe से बाहर तोड़ता है
यहां मैं कहां फंस गया हूं: उपयोगकर्ता ऐप को अधिकृत करता है, और ऐप उपयोगकर्ता को प्रमाणीकृत करता है (मैं टोकन ओके के साथ ग्राफ अनुरोध करने में सक्षम हूं), redirect_uri होता है, और पूरे पृष्ठ को रीफ्रेश करता है, फेसबुक छोड़कर और तत्काल मुझे फेसबुक पर इफ्रैम किए जाने के बजाय, मेरे "कैनवास यूआरएल" पृष्ठ (मेरे सर्वर के डोमेन के साथ) की सामग्री दिखाता है।
<?php
require('src/facebook.php');
$app_id = '123456789';
$app_secret = '1234secrets1234';
$canvas_page = "https://apps.facebook.com/123456789/";
$canvas_url = "https://myserver.com/apptest/";
$code = $_REQUEST['code'];
if(!$code){
$display= 'page';
$scope= 'manage_pages, offline_access, read_insights, publish_stream, user_about_me, user_likes, email';
$redirect_url = 'https://myserver.com/apptest/step2.php';
$oauth_url = 'https://www.facebook.com/dialog/oauth?canvas=1&client_id='.$app_id.'&display='.$display.'&redirect_uri='.urlencode($redirect_url).'&scope='.$scope;
$config = array('appId' => $app_id,'secret' => $app_secret,'cookie' => true,'domain' => true);
$facebook_client = new Facebook($config);
echo "<script type=\"text/javascript\">top.location.href = \"".$oauth_url."\";</script>";
}
?>
और दूसरे पृष्ठ (चरण 2:
मैं वर्तमान में एक कच्चे दो चरणों वाली प्रक्रिया के रूप में इस है ...
यहाँ मेरी कोड पहले पृष्ठ (index.php) पर कैसा दिखता है .php):
<?php
require('src/facebook.php');
$app_id = '123456789';
$app_secret = '1234secrets1234';
$canvas_page = "https://apps.facebook.com/123456789/";
$canvas_url = "https://myserver.com/apptest/";
if($_REQUEST['code']){
$code=$_REQUEST['code'];
$redirect_url = 'https://myserver.com/apptest/step2.php';
$link="https://graph.facebook.com/oauth/access_token?canvas=1&client_id=".$app_id."&redirect_uri=".urlencode($redirect_url)."&client_secret=".$app_secret."&code=".$code;
$string = file_get_contents($link);
$auth_token=substr($string, 13, 150);
$graph_url = "https://graph.facebook.com/me?access_token=".$auth_token;
$user = json_decode(file_get_contents($graph_url));
echo("Hello " . $user->name);
}
फिर, उपयोगकर्ता एप्लिकेशन को प्राधिकृत किया है, और एप्लिकेशन को उपयोगकर्ता, ग्राफ कॉल काम करता है प्रमाणीकृत किया है एक बार।
कोई विचार?
संभावित डुप्लिकेट [मुझे अपने फेसबुक ऐप में साइन_रेक्वेस्ट के लिए एक अपरिभाषित अनुक्रमणिका क्यों मिलती है?] (Http://facebook.stackoverflow.com/questions/7534241/why-do-i-get-an-undefined-index -for-sign-request-in-my-facebook-app) – ifaour