Twitter oAuth callbackUrl - разработка локального хоста - PullRequest
109 голосов
/ 29 апреля 2009

Кто-нибудь еще испытывает затруднения при получении URL обратного вызова Twitters oAuth, чтобы попасть в среду разработки localhost. Видимо это было отключено недавно. http://code.google.com/p/twitter-api/issues/detail?id=534#c1

Есть ли у кого-нибудь обходной путь? Я действительно не хочу останавливать свое развитие

Ответы [ 17 ]

2 голосов
/ 27 июля 2018

Кажется, в наше время http://127.0.0.1 также перестал работать. Простое решение - использовать http://localtest.me вместо http://localhost, оно всегда указывает на 127.0.0.1 И вы даже можете добавить к нему любой произвольный поддомен, и он все равно будет указывать на 127.0.0.1

См. Веб-сайт

2 голосов
/ 11 сентября 2013

редактировать эту функцию на TwitterAPIExchange.php в строке # 180

public function performRequest($return = true)
{
    if (!is_bool($return)) 
    { 
        throw new Exception('performRequest parameter must be true or false'); 
    }

    $header = array($this->buildAuthorizationHeader($this->oauth), 'Expect:');

    $getfield = $this->getGetfield();
    $postfields = $this->getPostfields();

    $options = array( 
        CURLOPT_HTTPHEADER => $header,
        CURLOPT_HEADER => false,
        CURLOPT_URL => $this->url,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_SSL_VERIFYPEER => false,
        CURLOPT_SSL_VERIFYHOST => false
    );

    if (!is_null($postfields))
    {
        $options[CURLOPT_POSTFIELDS] = $postfields;
    }
    else
    {
        if ($getfield !== '')
        {
            $options[CURLOPT_URL] .= $getfield;
        }
    }

    $feed = curl_init();
    curl_setopt_array($feed, $options);
    $json = curl_exec($feed);
    curl_close($feed);

    if ($return) { return $json; }
}
2 голосов
/ 01 декабря 2017

У меня была такая же проблема, и я не смог указать localhost в качестве действительного URL обратного вызова. Поэтому я создал простой домен, чтобы помочь нам разработчикам: https://tolocalhost.com

Он перенаправит любой путь к вашему локальному домену и порту, который вам нужен. Надеюсь, что это может быть полезным для других разработчиков.

1 голос
/ 13 сентября 2017

Вот шаги, которые помогли мне заставить Facebook работать с локальным приложением на моем ноутбуке:

  • goto apps.twitter.com
  • введите имя, описание приложения и URL вашего сайта Примечание: для localhost: 8000 используйте 127.0.0.1:8000, так как первый не будет работать
  • введите URL-адрес обратного вызова, соответствующий URL-адресу обратного вызова, определенному в TWITTER_REDIRECT_URI вашего приложения Примечание: например: http://127.0.0.1/login/twitter/callback (localhost не будет работать).
  • Важно введите URL-адреса как "политики конфиденциальности", так и "условия использования", если вы хотите запросить адрес электронной почты пользователя
  • установите флажок "согласиться с условиями"
  • нажмите [Создать приложение для Twitter]
  • переключиться на вкладку [Ключи и жетоны доступа] вверху
  • скопируйте "Ключ потребителя (ключ API)" и "Секрет потребителя (секрет API)" в TWITTER_KEY и TWITTER_SECRET в вашем приложении
  • Перейдите на вкладку «Разрешения» и установите соответствующие значения «Только чтение», «Чтение и запись» или «Чтение, запись и прямое сообщение» (используйте наименее навязчивую опцию, необходимую для вашего приложения, для правого входа и входа в систему OAuth). достаточно только "1024 *
  • В разделе «Дополнительные разрешения» установите флажок «запрашивать адреса электронной почты от пользователей», если вы хотите, чтобы адрес электронной почты пользователя был возвращен в данные для входа в OAuth (в большинстве случаев отметьте «да»)
1 голос
/ 14 августа 2015

Я боролся с этим и следовал дюжине решений, в конце концов все, что мне нужно было сделать для работы с любым ssl apis на локальном хосте, было:

Перейти скачать: файл cacert.pem

В php.ini * откомментируйте и измените: curl.cainfo = "c:/wamp/bin/php/php5.5.12/cacert.pem"

  • Вы можете узнать, где находится файл php.ini на вашем компьютере, введя php --ini в CLI
  • Я поместил свой cacert.pem в тот же каталог, что и php.ini, для простоты.
1 голос
/ 15 января 2013

установить callbackurl в твиттер-приложении: 127.0.0.1:3000 и установите WEBrick для привязки 127.0.0.1 вместо 0.0.0.0

команда: rails s -b 127.0.0.1

1 голос
/ 21 ноября 2014

Похоже, что Twitter теперь позволяет localhost наряду с тем, что у вас есть в настройках Callback URL, при условии, что там есть значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...