Что не так с API Facebook и Twitter? - PullRequest
2 голосов
/ 30 сентября 2011

Кто-нибудь еще замечает, что API Facebook и твиттеров не работают?

Для 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));
    }

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

https://twitter.comoauth_callback/?oauth_token=yA2xjLsVRm9tIuVEysXnCV8R7TISW8tF94uznn7zlw&oauth_verifier=Io1N2I8zOEzJeBWI77WXFMqmMRNDfCrXZGQxXmxJLbI

Да, https://twitter.comoauth_callback/ верно, нет / после .com, это вместе, поэтому я не могу найти страницу ...

Как будто у обоих API есть серьезные проблемы ... Иногда Facebook работает, а иногда нет, этоглючит много ...

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

v3.1.1
v3.1.0
v3.0.1

И ничего из этого не работает ...


Обновление

Обратный URL (redirect_uri) ДОЛЖЕН есть Facebookкласс включен в файл ...

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

Итак, Facebook исправлен ... Twitter все еще не работает ...


1 Ответ

4 голосов
/ 30 сентября 2011

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

Прежде всего, посмотрите на пример OFFICIAL PHP-SDK, вы заметите следующее:

  1. Был включен только файл facebook.php, почему бы не base_facebook.php?хорошо, потому что он включен в facebook.php файл!
  2. Разработчики раньше использовали req_perms, но теперь для запроса разрешений вам просто нужно использовать scope
  3. Загляните внутрь base_facebook.php для параметров, ожидаемых классом Facebook(): appId, secret и fileUpload ONLY
  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));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...