URL d'un lien vers Twitter pour un tweet spécifique

87

J'ai du Javascript qui utilise l'API Twitter pour obtenir des tweets. J'analyse les données et j'utilise jQuery pour générer du HTML pour le DOM.

Un aspect de ce que je veux afficher est un lien "Afficher ce tweet" - ouais, un peu semble idiot, mais il permet à un utilisateur d'obtenir une URL pour un tweet spécifique.

Je génère un tag avec un href. L'URL est de la forme:

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

où le contenu entre accolades est des données réelles extraites du tweet (non, je n'inclut pas les accolades). Par exemple:

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

Ce qui se passe en fonctionnement, c'est que cela fonctionne pour certains tweets, mais pas pour d'autres. Pour ceux qui échouent, le serveur Twitter répond avec un contenu indiquant que la page demandée n'existe pas.

Est-ce que je fais quelque chose de mal?

Zhami
la source
1
Oui, je faisais quelque chose de mal - je n'extrayais pas l'ID de chaîne. Ma faute. Désolé pour le bruit.
Zhami

Réponses:

155

https://twitter.com/statuses/IDdevrait marcher.
il redirigera vers l'état requis.

Sagiv Ofek
la source
31
Cela ne fonctionne pas sur les appareils mobiles, utilisez le formulaire plus long si vous voulez un lien qui peut être ouvert depuis un mobile: twitter.com/twitter-user-screen-name/status/tweet-id-str
UKatz
2
@UKatz malheureusement ce lien semble rompu :(
clapas
1
@clapas Je pense que ce n'est qu'un exemple d'URL, vous substitueriez twitter-user-screen-nameet tweet-id-stravec les valeurs appropriées pour un lien de travail.
Thomas Foster
Cela fonctionne sur le navigateur de l'ordinateur. Cependant, si vous utilisez un appareil mobile, le serveur Twitter le redirigera automatiquement vers https://mobile.twitter.com/statuses/ID, ce qui conduit à une page d'erreur. Donc, la solution globale est toujours https://twitter.com/{twitter-user-id}/status/{tweet-status-id}.
Owen Zhao
Cela échoue également sur les navigateurs macOS, vous avez besoin de twitter-user-id selon mobile
mmmmmm
52

Malheureusement, toutes les réponses fournies jusqu'à présent reposent sur une redirection HTTP.

Le lien direct est de la forme: https://twitter.com/i/web/status/ {tweet-status-id}

Jeff Puckett
la source
2
c'est la seule solution qui fonctionne pour les deux sans avoir à fournir explicitement le nom d'utilisateur (ce qui est volatile si vous me le demandez ... rien de tel que de rendre orphelins tous vos liens au gré d'un utilisateur ...). Cela dit, ce que sait si cela est « soutenu » ... il semble hacky ...
Nokturnal
1
C'est également ce que Twitter utilise lui-même lorsqu'il met l'URL dans le tweet (Streaming API). Très facile sans construire l'URL basée sur UserID.
Maziyar
46

FYI: id_str est la variable que vous devez appeler au lieu de id

id_str doit être extrait de l'objet tweet et remplacé dans https://twitter.com/statuses/[id_str]

Trevor Jordet
la source
2
m'a pris un moment pour comprendre que vous voulez dire que vous id_strdevriez être extrait de l'objet tweet et entré comme ID de la réponse de sagivo:https://twitter.com/statuses/[id_str]
Dominic
1
Ceci n'est nécessaire que pour JavaScript et d'autres environnements qui ne prennent pas en charge les entiers 64 bits
chribsen
5

Vous pouvez utiliser

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

Pawan Kotak
la source
3

J'ai essayé. Cela fonctionne bien: - Web: https://twitter.com/statuses/ID - Mobile && Web: https://twitter.com/User_ID/statuses/Tweet_ID

J'espère que cela vous sera utile.

Kiều Văn Thái
la source
@ seyfi-dertli answer inclut le mobile mais fonctionne également pour le bureau.
Leopold Joy du
Avez-vous déjà essayé ??? Si vous n'avez pas id_user, vous n'utilisez id_tweet qu'avec web. Et twitter.com/User_ID/statuses/ID sera exactement avec tout.
Kiều Văn Thái
La solution de @Jeff Puckett fonctionne pour moi à la fois sur le Web et sur mobile.
Leopold Joy