Что не так с API-интерфейсами Facebook и Twitter?

#facebook-graph-api #facebook #twitter

#facebook-graph-api #Facebook #Twitter

Вопрос:

Кто-нибудь еще заметил, что API-интерфейсы Facebook и twitters не работают?

Для facebook, даже если я разрешаю своему приложению доступ к моей стене

 $facebook->getUser()
  

Всегда равно 0… Когда я пытаюсь открыть getLoginUrl, он просто открывает всплывающее окно и мгновенно перенаправляет его на ссылку возврата успеха…

Вот код:

 require_once 'src/base_facebook.php';
require_once 'src/facebook.php';

$app_id = 'xxx';
$app_secret = 'xxx';

$facebook = new Facebook(array(
  'appId'  => $app_id,
  'secret' => $app_secret,
  'oauth' => true,
  'cookie' => true
));

$req_perms = "publish_stream";

$user = $facebook->getUser();

if (!$user)
    {
    $loginUrl = $facebook->getLoginUrl(array('display' => 'popup', 'redirect_uri' => 'http://xxxx.com/return_close.php?success=1', 'cancel_url' => 'http://xxxx.com/return_close.php?success=0','req_perms' => $req_perms, 'scope' => $req_perms));
    }
  

А для Twitter это похоже на то, что кто-то неправильно ввел обратную ссылку…
Когда я открываю getAuthorizeURL и когда я вхожу в систему, он перенаправляет меня на этот URL:

 https://twitter.comoauth_callback/?oauth_token=yA2xjLsVRm9tIuVEysXnCV8R7TISW8tF94uznn7zlwamp;oauth_verifier=Io1N2I8zOEzJeBWI77WXFMqmMRNDfCrXZGQxXmxJLbI
  

Да, https://twitter.comoauth_callback / правильно, нет / after .com , это вместе, поэтому я получаю страницу «не найдено»…

Похоже, что оба API имеют серьезные проблемы… Facebook иногда работает, а иногда нет, он часто глючит…

Библиотека Facebook загружена с ОФИЦИАЛЬНОЙ страницы GitHub. Проверенные версии:

 v3.1.1
v3.1.0
v3.0.1
  

И ни один из них не работает…


Обновить

Возвращаемый URL-адрес ( redirect_uri) ДОЛЖЕН содержать класс facebook, включенный в файл…

Существует так много примеров / документации, и ни в одном из них это не объяснялось…

Итак, Facebook исправлен… Twitter по-прежнему не работает…


Комментарии:

1. Вы, должно быть, новичок в разработке FB. Не волнуйтесь, как только вы это поймете, они это изменят. «Если он не сломался, исправляйте его, пока он не сломался».

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

3. О, и наслаждайтесь документацией.

4. Итак… Это происходит постоянно или это моя вина?

5. «Кто-нибудь еще замечает, что API-интерфейсы facebook и twitters не работают?» — интересно, почему вы думаете, что их API-интерфейсы ломаются одновременно, но не ваш код просто написан неправильно?

Ответ №1:

Ну, в API ничего не сломано. Откуда вы взяли приведенный выше код? и если вы это придумаете, то на основе какого ресурса?

Прежде всего, взгляните на пример ОФИЦИАЛЬНОГО PHP-SDK, вы заметите следующее:

  1. Включен только facebook.php файл, почему бы и нет base_facebook.php ? ну, потому что это включено в facebook.php файл!
  2. Разработчики использовали req_perms , но теперь для запроса разрешений вам просто нужно использовать scope
  3. Загляните внутрь base_facebook.php для параметров Facebook() , ожидаемых классом: appId , secret и fileUpload ТОЛЬКО
  4. Используйте display параметр, только если вы знаете, что делаете!
  5. Используйте правильные отступы в своем коде, это делает вашу жизнь (и других!) намного проще!

Как уже было сказано, это переписывание вашего кода:

 require 'src/facebook.php';

$app_id = 'xxx';
$app_secret = 'xxx';

$facebook = new Facebook(array(
  'appId'  => $app_id,
  'secret' => $app_secret
));

$req_perms = "publish_stream";

$user = $facebook->getUser();

if (!$user) {
    $loginUrl = $facebook->getLoginUrl(array('display' => 'popup', 'redirect_uri' => 'http://xxxx.com/return_close.php?success=1', 'cancel_url' => 'http://xxxx.com/return_close.php?success=0', 'scope' => $req_perms));
}
  

Комментарии:

1. Ресурсы загружаются с этой ОФИЦИАЛЬНОЙ страницы, вверху у вас есть загрузки, и выберите версию v3.1.1 … 😉 И я использовал тот код, который вы мне только что прислали, но он не сработал, поэтому я попробовал с этими изменениями «исправления»… вот почему у него есть параметры base_facebook, cookie / oauth, а также scope и req_perms, ofc Я пытаюсь найти решение, прежде чем прийти сюда … 😉 5. Я буду использовать его правильно, если он работает нормально… В любом случае, ваш код не работает…

2. Очевидно, что приведенный выше код предназначен только для того, чтобы вы начали, он не перенаправит вас и ничего не сделает!. Кроме того, «не сработало», это не помогает нам помочь вам. Что не сработало?

3. Я изменил свой код так, как это сделали вы, зашел на свой Facebook, удалил разрешения для этого приложения в своем профиле, затем открыл страницу, а $user был равен 0. Затем я открываю во всплывающем окне $ loginUrl, он показал мне вопрос «Разрешить», я нажал «Разрешить», и он перевел меня на страницу успеха. Я перезагружаю свою страницу, где находится этот код, и на ней все еще было $ user 0… Я пробовал 3 разных браузера, пытался очистить свои файлы cookie / кеш… И это все еще не работает… Кроме того, я попробовал это на 3 последних версиях, v3.1.1, v3.1.0 и v3.0.1, и ни одна из них не работала…

4. Как насчет того, чтобы сначала использовать тот же точный пример кода, просто для проверки? и не используйте более старые версии SDK.

5. Как я уже говорил, я уже это сделал… Теперь, когда вы отправляете мне, и в первый раз, когда я начал это делать… Все тот же точный код… И это не работает… Я использую последнюю версию, но я тоже проверяю их, но это то же самое, не работает, поэтому я вернулся к последней версии… Странно, что иногда это работало, а иногда нет, но теперь это вообще не работает, и я ничего не менял за это время…