我試圖實現鏡像api到一個wordpress站點,但在登錄和驗證後,該站點嘗試加載大約30秒,然後失敗說,那裏是一個重定向循環。oauth使用鏡像api與wordpress後重定向循環
我實現鏡像API的方式是創建一個模板,其中包含oauth和whatnot所需的所有php,然後使用builder作爲佈局,內容等。我認爲這可能是wordpress的一個問題,但我不想放棄希望。
謝謝您的幫助
編輯:這是我用我的WordPress的頁面模板的代碼。
<?php
/*
Template Name: Glass
*/
require_once $_SERVER['DOCUMENT_ROOT'].'/glass/config.php';
require_once $_SERVER['DOCUMENT_ROOT'].'/glass/mirror-client.php';
require_once $_SERVER['DOCUMENT_ROOT'].'/glass/google-api-php-client/src/Google_Client.php';
require_once $_SERVER['DOCUMENT_ROOT'].'/glass/google-api-php-client/src/contrib/Google_MirrorService.php';
require_once $_SERVER['DOCUMENT_ROOT'].'/glass/util.php';
$client = get_google_api_client();
$message= "";
$subscriptionId;
if(isset($_GET['message']))
$message = $_GET['message'];
if (!isset($_SESSION['userid']) || get_credentials($_SESSION['userid']) == null) {
header('Location: ' . $base_url . '/oauth2callback.php');
exit;
} else {
$client->setAccessToken(get_credentials($_SESSION['userid']));
}
// A glass service for interacting with the Mirror API
$mirror_service = new Google_MirrorService($client);
$subscriptions = $mirror_service->subscriptions->listSubscriptions();
$timeline_subscription_exists = false;
foreach ($subscriptions->getItems() as $subscription) {
if ($subscription->getId() == 'timeline') {
$timeline_subscription_exists = true;
$subscriptionId = $subscription->getId();
}
}
switch ($_GET['operation']){
case 'createSubscription':
$message = subscribe_to_notifications($mirror_service, "timeline",
$_SESSION['userid'], "https://mirrornotifications.appspot.com/forward? url=".$base_url."/notify.php");
//Refresh Page
$mHeader = 'Location: ' . $base_url;
if($message != "")
$mHeader = $mHeader . '?message='.$message;
header($mHeader); exit;
break;
case 'deleteSubscription':
$message = $mirror_service->subscriptions->delete($subscriptionId);
//Refresh Page
$mHeader = 'Location: ' . $base_url;
if($message != "")
$mHeader = $mHeader . '?message='.$message;
header($mHeader);
exit;
break;
case 'refreshCard':
createControlCard($client);
header('Location: ' . $base_url);
exit;
break;
case 'refreshInfo':
generateInfoCards($client);
header('Location: ' . $base_url);
exit;
break;
}
get_header(); ?>
<div id="content" class="widecolumn">
<div id="main">
</div>
</div>
<?php get_footer(); ?>
你可以發表一些代碼說明你是如何做到這一點? – Prisoner