Как исправить ошибку определения таблицы не найдено? - PullRequest
2 голосов
/ 13 декабря 2011

Кто-нибудь знает, почему я получаю сообщение об ошибке ниже? Я начинаю изучать мир разработки 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 ]

3 голосов
/ 13 декабря 2011

Попробуйте добавить &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);
0 голосов
/ 23 ноября 2014

Проблема в том, что вы пытаетесь загрузить открытую таблицу, которую Yahoo API по умолчанию не распознает.

Таким образом, вы можете добавить префикс к следующему запросу:

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

Это загрузит пользовательскую таблицу , так что после этого вы сможете ее использовать.

Общий синтаксис:

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

Подробнее: Вызов определения таблицы открытых данных в YQL

...