Я получаю странную ошибку и не смог найти ответ .. Этот код работает хорошо:Отправка direct_message с twitteroauth
$receiverScrName='name';
$method = 'direct_messages/new';
$parameters = array('screen_name' => $receiverScrName, 'text' => 'how are you');
$dm = $oauth->post($method, $parameters);
Этот код ниже не работает. Только изменение - это параметр «$ message».
$receiverScrName='name';
$message='Hello man';
$method = 'direct_messages/new';
$parameters = array('screen_name' => $receiverScrName, 'text' => $message);
$dm = $oauth->post($method, $parameters);
Это дает ошибку:
stdClass Object ([error] => Could not authenticate with OAuth.
[request] => /1/direct_messages/new.json)
Я пытался кодировать "сообщение":
$message='Hello man';
$message=urlencode($message);
$method = 'direct_messages/new';
$parameters = array('screen_name' => $receiverScrName, 'text' => $message);
$dm = $oauth->post($method, $parameters);
Сообщение отправлено. Но полученное сообщение стало «Hello + man».
Как я могу удалить «плюс» или другие экранированные символы из сообщения, которое будет отправлено? Спасибо
Я не могу воспроизвести версию с '$ message', которая не работает. Может быть, у вас была случайная ошибка из Twitter? – abraham
Вскоре я узнал, что это связано с символами, отличными от ASCII, в «$ message». Он работает, когда я транслитерирую эти символы. Но если в тексте сообщения присутствует только символ UTF-8, это не работает. Я также предполагаю, что твиттер транслитерирует символы, отличные от ASCII, когда я отправляю прямые сообщения с помощью twitter.com – trante