Синтаксические ошибки в Твиттере YQL [в строке 3:63 отсутствует EOF в 'select'] - PullRequest
0 голосов
/ 13 декабря 2011

Почему я получаю эту ошибку?

Синтаксическая ошибка (и) [строка 3:63 отсутствует EOF при 'select']

Код:

$twitterUrl ="https://query.yahooapis.com/v1/public/yql?q=";
$twitterUrl .= urlencode("select * from twitter.oauth.accesstoken where oauth_verifier=@verifier 
            and oauth_consumer_key=@consumer_key and oauth_consumer_secret=@consumer_secret 
            and oauth_token=@token and oauth_token_secret=@token_secret;");
$twitterUrl .= urlencode("select * from twitter.status.timeline.user where id='jzm'");
$twitterUrl .="&format=json";
$twitterUrl .="&env=http://datatables.org/alltables.env";

$twitterFeed = file_get_contents($twitterUrl, true);
$twitterFeed = json_decode($twitterFeed);

1 Ответ

1 голос
/ 31 декабря 2011

Ваш запрос состоит из двух операторов выбора, разделенных точкой с запятой, что-то вроде:

select * from twitter.oauth.accesstoken where oauth_verifier=@verifier 
            and oauth_consumer_key=@consumer_key and oauth_consumer_secret=@consumer_secret 
            and oauth_token=@token and oauth_token_secret=@token_secret;select * from twitter.status.timeline.user where id='jzm'"

YQL допускает только оператор select, поэтому он жалуется на второй. (В этом отношении он отличается от чего-то вроде MySQL.)

Вы можете изменить порядок своих параметров, сделав его одним (действительным) оператором выбора, как показано ниже:

<code>select * from twitter.status.timeline.user where
  id="jzm" and
  oauth_token="oauth_token" and 
  oauth_token_secret="oauth_token_secret" and
  oauth_consumer_key="oauth_consumer_key" and
  oauth_consumer_secret="oauth_consumer_secret"

Обратите внимание, что вам все равно нужно получить oauth_token и oauth_token_secret из потока OAuth через Twitter. Преимущество YQL здесь в том, что он может выполнять подписывание запросов для вас, избегая необходимости использования сторонней библиотеки OAuth или Twitter / OAuth.

...