Проблема с SpringPad API - PullRequest
1 голос
/ 26 мая 2011

Я пытаюсь получить доступ к дате с помощью Springpad API.

Если я воспользуюсь следующей ссылкой:

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

У меня нет проблем с получением двух последних результатов с поисковым термином "J K 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

Все, что я получаю, это пустой массив для моих результатов. Что я тут не так делаю ??

1 Ответ

1 голос
/ 27 мая 2011

вызов API Springpad "/ 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...