YQL Twitter语法错误[第3:63行'选择'时缺少EOF]

时间:2011-12-13 07:32:16

标签: twitter yql

为什么我会收到此错误?

  

语法错误[第3:63行'选择'时缺少EOF]

代码:

$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 个答案:

答案 0 :(得分:1)

您的查询将两个select语句放在一起,用分号分隔,如:

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不同。)

您可以重新排序参数,使其成为一个(有效)选择语句,如下所示:

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"

请注意,您仍然需要通过Twitter从OAuth流中获取oauth_tokenoauth_token_secret。 YQL的优势在于它可以为您执行请求签名,从而无需使用第三方OAuth或Twitter / OAuth库。