La API para publicar tweets no está funcionando para otros usuarios.
He creado una cuenta de desarrollador de Twitter con mi perfil y pasando las claves del consumidor, el secreto del consumidor, el ID del token y el secreto del token, y si estoy llamando a la API create-tweet (‘https://api.twitter.com/1.1/statuses/update.json’), entonces obtengo una respuesta adecuada, pero si estoy creando tweets con las credenciales de otros usuarios, obtengo un error ([errors] => Array([code] => 32, [message] => Could not authenticate you.)). También he concedido permisos de lectura y escritura a mi aplicación.
public function createTweet(Request $req) {
Log::channel('twitterwebhook')->info($req->all());
$access_token = $req->require('token_id');
$acess_token_secret = $req->require('token_secret');
$message = $req->require('message');
$twitter = new TwitterAPI($access_token, $acess_token_secret);
$response = $twitter->createTweet($message);
if(isset($response->errors)){
return error($response->errors, 4099);
}
$data = [
'tweet_id' => $response->id,
'tweet_str_id' => $response->id_str,
'message' => $response->text,
'user_twitter_id' => $response->user->id,
'user_twitter_name' => $response->user->name,
'user_twitter_screen_name' => $response->user->screen_name
];
return success($data);
}
public function createTweet($tweet_message) {
$postfields = [
'status' => $tweet_message,
'trim_user' => false
];
$twitterResponse = $this->buildOauth($this->_update_url, 'POST')
->setPostfields($postfields)
->performRequest();
return json_decode($twitterResponse);
}
davy.ai
Problema con la autenticación de las credenciales de otros usuarios
El usuario puede crear un tweet exitosamente al pasar su propio
cosumer_key
,consumer_secret
,token_id
ytoken_secret
. Sin embargo, al usar las credenciales de otros usuarios con permisos de lectura y escritura para la aplicación, reciben un mensaje de error que dice([errors]=> Array([code]=> 32, [message]=> No se pudo autenticar.)
).Posible solución
Una posible solución es asegurarse de que la aplicación haya sido otorgada acceso de lectura y escritura por el usuario cuyas credenciales se están utilizando para crear el tweet. Otra posible solución es verificar si el proceso de autenticación se ha completado correctamente por parte del usuario en cuestión, ya que a veces Twitter solicita una re-autenticación antes de habilitar la funcionalidad. Por último, también se puede verificar la posibilidad de que haya algunos errores en el código que estén causando el problema.