new developer desarrollador cuenta clave app twitter oauth

desarrollador - twitter developer login



¿Qué es oauth_token_secret en Twitter OAuth? (2)

Cuando obtengo un token de acceso de Twitter obtengo algo como lo siguiente:

oauth_token=14410002-F5Bi8hMpQbXamM8MBBw8zw2LYIBL4FEBvxLZfaSwX&oauth_token_secret=K8QNvDcC2f9qtGU8tfa75exwLZ2Sc1jeHrThnk6Co&user_id=14410002&screen_name=blueonion

¿Qué es el oauth_token_secret? ¿Es eso lo que se usa para firmar solicitudes protegidas o todavía se usa la consumer_key?


La respuesta corta es: el oauth_token y el oauth_token_secret constituyen el token de solicitud que se utiliza para firmar las solicitudes.

Aquí hay algunos recursos que pueden ayudar:

Esta no es la clave del consumidor. La clave del consumidor solo se utiliza para identificar al consumidor (= el código que llama a Twitter) mientras que el Token de solicitud está vinculado al usuario. El token de solicitud consiste entonces en una parte pública y una parte secreta que se utilizan para firmar la solicitud tal como se explica en la especificación en la sección 9.

Pero probablemente quiera usar una de las bibliotecas y echar un vistazo a los ejemplos.


esta es realmente una buena pregunta porque Twitter parece haber roto el estándar Oauth 1.0 en este requisito. descubrí por accidente que si omites el oauth_token_secret de la clave de firma, es decir.

$signing_key = encode_rfc3986($consumer_secret).''&'';

en lugar de

$signing_key = encode_rfc3986($consumer_secret).''&''.encode_rfc3986($oauth_token_secret);

al solicitar el token de acceso, ambos funcionarán igual para Twitter.

en mi sitio web desarrollé twitter oauth antes de desarrollar cualquier otra autenticación de proveedor de servicios oauth 1.0 y no pude entender por qué incluso se necesitaba un oauth_token_secret. una vez que probé el mismo código en yahoo y linkedin, tuve un desagradable shock ya que el mismo código que funcionaba para Twitter no funcionaba en los otros proveedores de servicios (es decir, estaba usando el primer fragmento de arriba cuando debería haber estado usando el segundo fragmento) )