Quantcast
Channel: Webkul Blog
Viewing all articles
Browse latest Browse all 5614

Generate automatic access token with Curl

$
0
0

Automatic Generate Facebook access token you just need the client app id, secret key and short time access token to generating long time access token.

Here is the code :

$ch1 = curl_init();                   //this part we set up curl 
curl_setopt($ch1, CURLOPT_URL, 'https://graph.facebook.com/oauth/access_token?client_id='.$wkapiid.'&client_secret='.$wkappsecret.'&grant_type=fb_exchange_token&fb_exchange_token='.$accesstoken.'');

curl_setopt($ch1, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch1, CURLOPT_TIMEOUT, 15);
curl_setopt($ch1, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch1, CURLOPT_FOLLOWLOCATION, true);
$longaccesstoken = curl_exec($ch1);
curl_close($ch1);
header('Content-type: application/xml');  //specify as xml to not display as one long string

$data=json_decode($longaccesstoken);

This is the full code which is used to generate access token for each time just before 2 month.

jimport( 'joomla.filesystem.file' );
jimport( 'joomla.filesystem.stream' );

function getName($file) {
        $slash = strrpos($file, DS);
        if ($slash !== false) {
                return substr($file, $slash + 1);
        } else {
                return $file;
        }
}

$wkdates = getdate();

$searchdir = "modules/mod_facebookwall/elements";

$filestext = glob($searchdir.'/*.txt', GLOB_BRACE);

$filename = getName(JPATH_ROOT."/".$filestext[0]);

$accesstokenfinal = file_get_contents(JPATH_ROOT."/".$filestext[0]);

$filetime = explode(".txt", $filename);

$filerealtime = $filetime[0];

if($filerealtime < $wkdates[0])
{	  

	if($filerealtime==0){
   		$ch1 = curl_init();                   //this part we set up curl 
		curl_setopt($ch1, CURLOPT_URL, 'https://graph.facebook.com/oauth/access_token?client_id='.$wkapiid.'&client_secret='.$wkappsecret.'&grant_type=fb_exchange_token&fb_exchange_token='.$accesstoken.'');

		curl_setopt($ch1, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($ch1, CURLOPT_TIMEOUT, 15);
		curl_setopt($ch1, CURLOPT_SSL_VERIFYHOST, 0);
		curl_setopt($ch1, CURLOPT_FOLLOWLOCATION, true);
		$longaccesstoken = curl_exec($ch1);
		curl_close($ch1);
		header('Content-type: application/xml');  //specify as xml to not display as one long string
                $data=json_decode($longaccesstoken);

		if($data->error->code==190){
			echo "Error validating access token, Please Give right Accesstoken for that APPS ";
		}
		elseif ($data->error->code==101) {
			echo "Error validating application, Please Give right API ID for that APPS ";
		}
		elseif ($data->error->code==1) {
			echo "Error validating client secret, Please Give right Secret Key for that APPS ";
		}
		else{
			$stripacceess = explode("access_token=", $longaccesstoken);
			$finalstripacees = explode("&expires=", $stripacceess[1]);	
			$accesstokenfinal = $finalstripacees[0];
			$explodedate = $finalstripacees[1];
			$changefiletime = $wkdates[0] + $explodedate -2000;
			$tempfilepath = JPATH_ROOT . DS . 'modules' . DS . 'mod_facebookwall'. DS . 'elements';
			$fileIniName = JPATH_ROOT."/modules/mod_facebookwall/elements/".$filerealtime.".txt";
			$fileChangeName = JPATH_ROOT."/modules/mod_facebookwall/elements/".$changefiletime.".txt";
			file_put_contents(JPATH_ROOT."/".$filestext[0], $accesstokenfinal);
			rename($fileIniName, $fileChangeName);
		}		

   	}
   	else{   		
   		$ch = curl_init();                   //this part we set up curl 
        curl_setopt($ch, CURLOPT_URL, 'https://graph.facebook.com/oauth/access_token?client_id='.$wkapiid.'&client_secret='.$wkappsecret.'&grant_type=fb_exchange_token&fb_exchange_token='.$accesstokenfinal.'');

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_TIMEOUT, 15);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
        $longaccesstoken = curl_exec($ch);
        curl_close($ch);
        header('Content-type: application/xml');  //specify as xml to not display as one long string

        $data=json_decode($longaccesstoken);

		if($data->error->code==190){
			echo "Error validating access token, Please Give right Accesstoken for that APPS ";
		}
		elseif ($data->error->code==101) {
			echo "Error validating application, Please Give right API ID for that APPS ";
		}
		elseif ($data->error->code==1) {
			echo "Error validating client secret, Please Give right Secret Key for that APPS ";
		}
		else{
			$stripacceess = explode("access_token=", $longaccesstoken);
			$finalstripacees = explode("&expires=", $stripacceess[1]);	
			$accesstokenfinal = $finalstripacees[0];
			$explodedate = $finalstripacees[1];
			$changefiletime = $wkdates[0] + $explodedate -2000;
			$tempfilepath = JPATH_ROOT . DS . 'modules' . DS . 'mod_facebookwall'. DS . 'elements';
			$fileIniName = JPATH_ROOT."/modules/mod_facebookwall/elements/".$filerealtime.".txt";
			$fileChangeName = JPATH_ROOT."/modules/mod_facebookwall/elements/".$changefiletime.".txt";
			file_put_contents(JPATH_ROOT."/".$filestext[0], $accesstokenfinal);
			rename($fileIniName, $fileChangeName);
		}

   	}

}
Facebook Twitter Email Reddit Stumbleupon

Viewing all articles
Browse latest Browse all 5614

Trending Articles