2011-05-25 52 views
1

我想使用Springpad API訪問日期。與SpringPad API的問題

如果我使用下面的鏈接:

http://springpadit.com/api/blocks/all?limit=1&text=HARRY+POTTER 

我沒有問題,取得最近2個結果與搜索詞「JK Rowlings'

我寫了下面的代碼做同樣的事情後,授權我的服務器:

$api_url = "http://springpadit.com/api/"; 
$query = $_GET['query']; 
$param = array('limit'=>1, 'text'=>$query); 
$temp = http_build_query($param,"","&"); 
$url = $api_url."blocks/all?".$temp; 

session_start(); 

// In state=1 the next request should include an oauth_token. 
// If it doesn't go back to 0 
if(!isset($_GET['oauth_token']) && $_SESSION['state']==1) $_SESSION['state'] = 0; 
try { 
    $oauth = new OAuth($conskey,$conssec,OAUTH_SIG_METHOD_HMACSHA1,OAUTH_AUTH_TYPE_URI); 
    $oauth->enableDebug(); 
    if(!isset($_GET['oauth_token']) && !$_SESSION['state']) { 
    $request_token_info = $oauth->getRequestToken($req_url); 
    $_SESSION['secret'] = $request_token_info['oauth_token_secret']; 
    $_SESSION['state'] = 1; 
    header('Location: '.$authurl.'?oauth_token='.$request_token_info['oauth_token'].'&oauth_token_secret='.$_SESSION['secret']); 
    exit; 
    } else if($_SESSION['state']==1) { 
    $oauth->setToken($_GET['oauth_token'],$_SESSION['secret']); 
    $access_token_info = $oauth->getAccessToken($acc_url); 
    $_SESSION['state'] = 2; 
    $_SESSION['token'] = $access_token_info['oauth_token']; 
    $_SESSION['secret'] = $access_token_info['oauth_token_secret']; 
    } 
    $oauth->setToken($_SESSION['token'],$_SESSION['secret']); 
    $oauth->fetch($url); 
    $json = json_decode($oauth->getLastResponse(),true); 
    print_r($json['blocks']); 
} catch(OAuthException $E) { 
    print_r($E); 
} 

這應該讓你創建相同的查詢和檢索使用下面的鏈接數據:

http://xrefpro.com/CRM/index.php?query=HARRY+POTTER

我得到的所有數據都是我的結果的空數組。我在這裏做錯了什麼?

+0

是什麼的var_dump($ oauth-> getLastResponse()獲得);給你? – 2011-05-25 20:46:21

+0

@ kyle-hudson它給了我 字符串(15)「{」blocks「:[]}」 – 2011-05-25 21:00:40

+0

好吧,這表明沒有任何東西從springpadit返回。 – 2011-05-25 21:03:18

回答

1

springpad api調用「/ api/blocks/all」是跨所有用戶公共數據的全局搜索。它不需要授權。這裏似乎是與導致,如果你已經登錄搜索到不行的API中的錯誤。您可以通過註銷的Springpad的,打

http://springpadit.com/api/blocks/all 

,然後嘗試在登錄時進行測試。

我想象一下發生了什麼,它試圖在自己的帳戶中找到包含該文本的塊。我是springpadit.com的一名員工,我們將着眼於通過全局查詢修復該錯誤。不過現在,不要爲oauth打擾全局查詢。

如果你想搜索自己的帳戶,使用OAuth和查詢

http://springpadit.com/api/users/me/blocks?limit=1&text=Thor 

的反應不會有一個「塊」的節點,所以才改變打印到

print_r($json);