es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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);
}
Tags:  , , ,

Answer

  1. Avatar for 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 y token_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.

Comments are closed.