Опубликовать / обновить данные через Twitter API - PullRequest
1 голос
/ 06 июля 2011

Что у меня есть: Приложение Twitter, созданное в твиттере, и приложение PHP на localhost

Что я хочу: публиковать твиты / обновлять статусы через Twitter API только из (!) аккаунта приложения. Нет твиттера @ в любом месте, нет логина пользователя, ничего необычного.

Что я пробовал:

https://github.com/abraham/twitteroauth с токенами доступа с сайта dev.twitter.com, возвращено

"Данные POST недоступны с этим лексема "

или что-то в этом роде.

фрагмент кода, который я нашел на каком-то сайте:

<code>// Define credentials for the Twitter account
define('TWITTER_CREDENTIALS', 'username:password');


// Set up CURL with the Twitter URL and some options
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://twitter.com/statuses/update.xml?status=test_status');
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);


// Twitter uses HTTP authentication, so tell CURL to send our Twitter account details
curl_setopt($ch, CURLOPT_USERPWD, TWITTER_CREDENTIALS);


// Execute the curl process and then close
$data = curl_exec($ch);
curl_close($ch);


// If nothing went wrong, we should now have some XML data 
echo '<pre>'.htmlentities(print_r($data, true)).'
';

возвращено

"Обычная аутентификация не поддерживается "

Ответы [ 2 ]

0 голосов
/ 07 июля 2011

Хорошо, я нашел, в чем проблема.

По умолчанию Twitter устанавливает все приложения только для чтения, поэтому даже когда вы входите через PHP, вы не можете отправлять POST / UPDATE.Что вам нужно сделать, это перейти в настройки приложения (в котором вы задаете имя приложения, описание и аватар), и перед аватаром есть «тип доступа по умолчанию», переключите его на

Чтение, запись, & Прямые сообщения

и вуаля.

для тестирования приложения используйте этот фрагмент

$twitter = new \TwitterOAuth('consumer_key', 'consumer_secret', 
                              '(oauth_token', 'oauth_token_secret');
$twitter->get('account/verify_credentials');
$twitter->post('statuses/update', array('status' => 'test status'));

Да, и вам не нужно выполнять вход в системувместе с вашим приложением вы получаете необходимые токены в меню «Мой токен доступа».

0 голосов
/ 07 июля 2011

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

OAuth теперь требуется Твиттером, что и используется библиотекой твиттераутов Авраама. Вам придется войти в систему / пройти аутентификацию, используя это, хотя бы один раз.

Вы также должны будете сначала зарегистрировать свое приложение в Twitter , чтобы получить свой собственный Ключ потребителя и Секрет потребителя. Тогда вы сможете начать использовать API Twitter через twitteroauth.

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