2 votes

Comment puis-je envoyer des messages directs sur Twitter au nom d'un utilisateur connecté ?

J'ai une application twitter avec le niveau d'accès "Lire, écrire et messages directs".

J'utilise omniauth-twitter ainsi que devise pour permettre aux utilisateurs de s'inscrire et de se connecter à mon site via Twitter. Tout va bien jusqu'à présent.

Il serait bien que l'utilisateur puisse envoyer des messages directs à ses followers.

Pour récupérer la liste des followers, j'utilise twitter gem . Maintenant, comment puis-je laisser l'utilisateur envoyer le message qu'il souhaite ?

J'ai essayé presque tout mais tous les retours This application is not allowed to access or delete your direct messages erreur. Cela me tue depuis une semaine

Quand je le fais Twitter.verify_credentials il n'y a pas d'erreur et un objet User est retourné. Mais lorsque j'appelle Twitter.direct_messages les erreurs ci-dessus sont soulevées. Est-ce que je rate quelque chose d'évident ici ?

Merci d'avance.

Mise à jour : Quand j'ai essayé Twitter.direct_message_create() ça a marché comme un charme ! J'aimerais savoir pourquoi Twitter.direct_messages n'a pas fonctionné.

1voto

abraham Points 19107

Vérifiez https://twitter.com/settings/applications pour s'assurer que les permissions DM sont réellement autorisées. Si ce n'est pas le cas, révoquez-les et réautorisez-les. Vérifiez que les jetons OAuth que le compte a accordés à l'application incluent effectivement l'accès à DM. Parfois, une application n'a pas d'accès DM, les jetons OAuth sont autorisés puis l'accès DM est ajouté aux paramètres de l'application et le jeton OAuth du compte n'a pas d'accès DM autorisé.

1voto

auxbuss Points 79

Pour répondre à votre question sur la mise à jour :

Mise à jour : Lorsque j'ai essayé Twitter.direct_message_create(), cela a fonctionné comme un charme. J'aimerais savoir pourquoi Twitter.direct_messages ne fonctionne pas. fonctionnent pas.

Twitter.direct_message(id)

est utilisé pour récupérer les DM existants, alors que :

Twitter.direct_message_create(user, text)

est utilisé pour envoyer un DM.

Voir ici : http://rubydoc.info/github/jnunemaker/twitter/master/Twitter/Client/DirectMessages

0voto

randallreedjr Points 330

Comme mise à jour de la réponse de @auxbuss, la méthode a été renommée en :

Twitter.create_direct_message(user,text,options={})

La documentation a également été déplacée : http://rubydoc.info/github/sferik/twitter/master/Twitter/REST/DirectMessages .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X