如何修复找不到表定义的错误?

时间:2011-12-13 06:38:35

标签: php facebook yql

有谁知道为什么我收到以下错误消息?我开始学习Facebook开发的世界,我找不到简单的答案。

代码:

$twitterUrl ="http://query.yahooapis.com/v1/public/yql?q=";
$twitterUrl .= urlencode("select * from twitter.status where id='jzm'");
$twitterUrl .="&format=json";

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

print_r($twitterFeed);

收到错误:

stdClass Object ( [error] => stdClass Object ( [lang] => en-US [description] => No definition found for Table twitter.status ) )

2 个答案:

答案 0 :(得分:3)

尝试在查询中添加&env=http://datatables.org/alltables.env

   $twitterUrl ="http://query.yahooapis.com/v1/public/yql?q=";
    $twitterUrl .= urlencode("SELECT * FROM twitter.status WHERE id='jzm'");
    $twitterUrl .="&format=json";
    $twitterUrl .="&env=http://datatables.org/alltables.env";

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

    print_r($twitterFeed);

答案 1 :(得分:0)

问题是,您正在尝试加载默认情况下Yahoo API无法识别的开放表。

因此,您可以通过以下查询为查询添加前缀:

USE 'http://www.datatables.org/twitter/twitter.status.xml' AS twitter.status;

这将加载custom community table,因此您可以使用它。

一般语法是:

USE "http://myserver.com/mytables.xml" AS mytable;
SELECT * FROM mytable WHERE...

了解详情:Invoking an Open Data Table Definition within YQL