URL de un enlace a Twitter para un tweet específico

87

Tengo algo de Javascript que usa la API de Twitter para obtener tweets. Analizo los datos y uso jQuery para generar HTML para el DOM.

Un aspecto de lo que quiero mostrar es un enlace "Ver este tweet"; sí, suena tonto, pero permite al usuario obtener una URL para un tweet específico.

Estoy generando una etiqueta a con un href. La URL tiene el formato:

http://twitter.com/{twitter-user-id}/status/{tweet-status-id}

donde el contenido entre llaves son datos reales extraídos del tweet (no, no estoy incluyendo las llaves). Por ejemplo:

http://twitter.com/Atechtrader/status/57432099984130050

Lo que sucede en la operación es que esto funciona para algunos tweets, pero no para otros. Para los que fallan, el servidor de Twitter responde con contenido que dice que la página solicitada no existe.

¿Estoy haciendo algo mal?

Zhami
fuente
1
Sí, estaba haciendo algo mal, no estaba extrayendo el ID de la cadena. Culpa mía. Perdón por el ruido.
Zhami

Respuestas:

155

https://twitter.com/statuses/IDDeberia trabajar.
redirigirá al estado necesario.

Sagiv Ofek
fuente
31
Esto no funciona en dispositivos móviles, use el formulario más largo si desea un enlace que se pueda abrir desde el móvil: twitter.com/twitter-user-screen-name/status/tweet-id-str
UKatz
2
@UKatz lamentablemente ese enlace parece roto :(
clapas
1
@clapas Creo que es solo una URL de ejemplo, la sustituirías twitter-user-screen-namey tweet-id-strcon los valores apropiados para un enlace que funcione.
Thomas Foster
Esto funciona en el navegador de la computadora. Sin embargo, si está utilizando un dispositivo móvil, el servidor de Twitter lo redirigirá automáticamente a https://mobile.twitter.com/statuses/ID, lo que conduce a una página de error. Entonces, la solución general sigue siendo https://twitter.com/{twitter-user-id}/status/{tweet-status-id}.
Owen Zhao
Esto también falla en MacOS navegadores yoiu necesitan thge twitter-user-id como por móvil
mmmmmm
52

Desafortunadamente, todas las respuestas proporcionadas hasta ahora se basan en una redirección HTTP.

El enlace directo tiene el formato: https://twitter.com/i/web/status/ {tweet-status-id}

Jeff Puckett
fuente
2
esta es la única solución que funciona para ambos sin tener que proporcionar explícitamente el nombre de usuario (que es volátil si me preguntas ... nada como dejar huérfanos todos tus enlaces por el capricho de un usuario ...). Dicho esto, ¿alguien sabe si esto es "compatible" ... parece hacky ...
nokturnal
1
Esto también es lo que utiliza Twitter cuando coloca la URL dentro del tweet (API de transmisión). Muy fácil sin construir la URL basada en UserID.
Maziyar
46

FYI: id_str es la variable a la que necesita llamar en lugar de id

id_str debe tomarse del objeto de tweet y reemplazarse en https://twitter.com/statuses/[id_str]

Trevor Jordet
fuente
2
Me tomó un momento darse cuenta de eso te refieres id_strdebe ser llevado desde el objeto tweet y ha introducido como el ID de la respuesta de sagivo:https://twitter.com/statuses/[id_str]
Dominic
1
Esto solo es necesario para JavaScript y otros entornos que no admiten números enteros de 64 bits
chribsen
5

Puedes usar

'https://www.twitter.com/'+ user.screen_name+'/status/' + id_str

Pawan Kotak
fuente
3

Lo he probado. Funciona bien: - Web: https://twitter.com/statuses/ID - Móvil && Web: https://twitter.com/User_ID/statuses/Tweet_ID

Espero que te sea de ayuda.

Kiều Văn Thái
fuente
@ seyfi-dertli answer incluye dispositivos móviles pero también funciona para computadoras de escritorio.
Leopold Joy
¿Lo has probado todavía ??? Si no tiene id_user, solo use id_tweet con web. Y twitter.com/User_ID/statuses/ID lo hará exactamente con todos.
Kiều Văn Thái
La solución de @Jeff Puckett me funciona tanto en la web como en dispositivos móviles.
Leopold Joy