Facebook canvas app unable to get access token using PHP SDK -
good noon,
i trying create new facebook canvas app. facebook app tried access token getcanvashelper()
method, every time tried print shows blank. using php sdk 5.0.0
$helper = $fb->getcanvashelper(); $accesstoken = $helper->getaccesstoken();
here below full sample code. due access token issue unable process further.
any appreciable.
here below sample code.
<?php session_start(); require_once __dir__ . '/src/facebook/autoload.php'; $fb = new facebook\facebook([ 'app_id' => 'my_app_id_i_have_replce_it_for_security', 'app_secret' => 'my_app_secret_i_have_replce_it_for_security', 'default_graph_version' => 'v2.4', ]); $helper = $fb->getcanvashelper(); $permissions = ['user_posts']; // optionnal try { if (isset($_session['facebook_access_token'])) { $accesstoken = $_session['facebook_access_token']; } else { $accesstoken = $helper->getaccesstoken(); } } catch(facebook\exceptions\facebookresponseexception $e) { // when graph returns error echo 'graph returned error: ' . $e->getmessage(); exit; } catch(facebook\exceptions\facebooksdkexception $e) { // when validation fails or other local issues echo 'facebook sdk returned 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; // oauth 2.0 client handler $oauth2client = $fb->getoauth2client(); // exchanges short-lived access token long-lived 1 $longlivedaccesstoken = $oauth2client->getlonglivedaccesstoken($_session['facebook_access_token']); $_session['facebook_access_token'] = (string) $longlivedaccesstoken; $fb->setdefaultaccesstoken($_session['facebook_access_token']); } // validating access token try { $request = $fb->get('/me'); } catch(facebook\exceptions\facebookresponseexception $e) { // when graph returns error if ($e->getcode() == 190) { unset($_session['facebook_access_token']); $helper = $fb->getredirectloginhelper(); $loginurl = $helper->getloginurl('https://apps.facebook.com/bs-kapil-canvas/', $permissions); echo "<script>window.top.location.href='".$loginurl."'</script>"; exit; } } catch(facebook\exceptions\facebooksdkexception $e) { // when validation fails or other local issues echo 'facebook sdk returned error: ' . $e->getmessage(); exit; } // getting posts published user try { $posts_request = $fb->get('/me/posts?limit=500'); } catch(facebook\exceptions\facebookresponseexception $e) { // when graph returns error echo 'graph returned error: ' . $e->getmessage(); exit; } catch(facebook\exceptions\facebooksdkexception $e) { // when validation fails or other local issues echo 'facebook sdk returned error: ' . $e->getmessage(); exit; } $total_posts = array(); $posts_response = $posts_request->getgraphedge(); if($fb->next($posts_response)) { $response_array = $posts_response->asarray(); $total_posts = array_merge($total_posts, $response_array); while ($posts_response = $fb->next($posts_response)) { $response_array = $posts_response->asarray(); $total_posts = array_merge($total_posts, $response_array); } print_r($total_posts); } else { $posts_response = $posts_request->getgraphedge()->asarray(); print_r($posts_response); } // can redirect page , use access token $_session['facebook_access_token'] } else { $helper = $fb->getredirectloginhelper(); $loginurl = $helper->getloginurl('https://apps.facebook.com/bs-kapil-canvas/', $permissions); echo "<script>window.top.location.href='".$loginurl."'</script>"; }
Comments
Post a Comment