Получение 401 в Твиттере OAuth запросы POST

deleteUndone=(parameter1,parameter2)=>{
    //do some stuff           
}

Для вызова deleteUndone используйте этот оператор. Предполагая, что a, b определены в состоянии компонента. Аргументы также могут быть определены в пределах области действия функции.

completeTodo = e => {    
   const {a,b}=this.state;
   completeUndone(e.target.id)
this.deleteUndone(a,b);

}

6
задан kender 27 March 2009 в 08:14
поделиться

4 ответа

Скорее всего, подпись недействительна. Вы должны следовать спецификации OAuth о том, как генерировать подпись (нормализованные параметры, URLencoding и cosumerSecret & oauthScret. Подробнее об этом позже ......

-8
ответ дан 17 December 2019 в 07:09
поделиться

Я только что закончил реализацию Twitter OAuth API с нуля, используя Java. Получать и публиковать запросы работают нормально. Вы можете использовать эту страницу http://www.hueniverse.com/hueniverse/2008/10/beginners-gui-1.html для проверки подписи и заголовков HTTP. Просто введите свои ключи и токены и проверьте вывод. Кажется, твиттер работает точно так, как описано в этом посте. Будьте осторожны с пробелами и символами UTF-8, например, Java кодирует пробел как «+», но для OAuth требуется% 20

4
ответ дан 17 December 2019 в 07:09
поделиться

У меня были те же проблемы, пока не понял, что параметры должны быть закодированы дважды для базовой строки. Мои запросы на получение все работали нормально, но мои посты, особенно обновления статуса, не удалось. На дошке я попробовал сообщение без пробелов в статусе параметра, и он работал.

В PHP:

function encode($input) {
    return str_replace('+', ' ', str_replace('%7E', '~', rawurlencode($input)));
}

$query = array();
foreach($parameters as $name => $value) {
    $query[] = encode($name) . '=' .encode($value);
}
$base = encode(strtoupper($method)) . '&' .encode($norm_url) . '&' . 
encode(implode('&', $query));

Обратите внимание на кодирование функция вокруг имен и значений параметров, а затем вокруг всей строки запроса. Пространство должно быть в конечном итоге % 2520 , а не только % 20 .

2
ответ дан 17 December 2019 в 07:09
поделиться

Убедитесь, что у вашего приложения есть тип доступа для чтения и записи. На странице настроек вашего приложения (например, http: // twitter .com / apps / edit / 12345 ) есть поле переключателя вроде этого:

Тип доступа по умолчанию: чтение и запись / только чтение

Если вы отметите «Только чтение», API обновления статуса будет return 401.

3
ответ дан 17 December 2019 в 07:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: