So versuche ich die Sitzung am Leben zu halten, in dem Moment, als ich die Sitzung aktualisieren abläuft mir geben diese:OAuth2, Token Schlüssel zu halten Sitzung nicht
Received error: 400 Raw response:{"error":"SESSION_EXPIRED","error_description":"Session expired"}
Hier ist mein Code basierend auf dem Beispiel auf Yahoo gegeben Geminis documentation, die ich gelesen habe, aber es gibt nichts, um die Sitzungen ablaufen zu lassen.
<?php
/* Example code to access Gemini API: Fetch advertiser information, create a new campaign and read specific campaign data
Prerequisites:
1. Sign up for an account on https://admanager.yahoo.com
2. Download YahooOAuth2.class.php file from here: https://github.com/saurabhsahni/php-yahoo-oauth2/blob/master/YahooOAuth2.class.php
3. PHP modules for json_decode & curl
4. A webserver running this code on port 80/443. Yahoo OAuth callback is only supported on these ports
*/
require "YahooOAuth2.class.php";
session_start();
#Your Yahoo API consumer key & secret with access to Gemini data
define("CONSUMER_KEY","<your consumer key>");
define("CONSUMER_SECRET","<your consumer secret>");
$redirect_uri="http://".$_SERVER['SERVER_NAME'] . $_SERVER['PHP_SELF'];//Or your other redirect URL - must match the callback domain
$gemini_api_endpoint="https://api.admanager.yahoo.com/v1/rest";
$oauth2client=new YahooOAuth2();
if (isset($_GET['code'])){
$code=$_GET['code'];
$_SESSION['code'] = $_GET['code'];
}
else {
$code=0;
}
if($code){
#oAuth 3-legged authorization is successful, fetch access token
$_SESSION['token'] = $oauth2client->get_access_token(CONSUMER_KEY,CONSUMER_SECRET,$redirect_uri,$_SESSION['code']);
#Access token is available. Do API calls.
$headers = array('Authorization: Bearer '. $_SESSION['token'],'Accept: application/json','Content-Type: application/json');
#Fetch Advertiser Name and Advertiser ID
$url=$gemini_api_endpoint."/advertiser/";
$resp=$oauth2client->fetch($url,$postdata="",$auth="",$headers);
$jsonResponse = json_decode($resp);
$advertiserName = $jsonResponse->response[0]->advertiserName;
$advertiserId = $jsonResponse->response[0]->id;
echo "Welcome ".$advertiserName;
}
else {
# no valid access token available, go to authorization server
header("HTTP/1.1 302 Found");
header("Location: " . $oauth2client->getAuthorizationURL(CONSUMER_KEY,$redirect_uri));
exit;
}
?>
Wie Sie sehen Ich habe versucht, session_start() ;, Speichern $ _GET [ 'Code'] und $ _GET [ 'token'] in die Sitzung, aber das funktioniert nicht.
Habe ich Recht, dass ein Problem mit dem Speichern des Tokens ist? Ich habe einen Tag damit verbracht und fühle mich, als würde ich im Kreis herumlaufen.
Danke für das Beispiel, ich werde es testen – user1955643