python-twitter icon indicating copy to clipboard operation
python-twitter copied to clipboard

New Direct Message endpoint needs to be implemented

Open melyux opened this issue 7 years ago • 29 comments
trafficstars

Twitter deprecated the old direct message endpoints on September 17, 2018 (3 days ago) after warning about it in July. (see this link: https://twittercommunity.com/t/details-and-what-to-expect-from-the-api-deprecations-this-week-on-august-16-2018/110746)

Does Python Twitter yet support the new endpoints for it? (https://developer.twitter.com/en/docs/direct-messages/sending-and-receiving/guides/direct-message-migration)

Using the PostDirectMessage function right now results in "Sorry, that page does not exist." error 34 from Twitter.

melyux avatar Sep 20 '18 05:09 melyux

I'm having the same issue, found the same cause, was looking for the same reason...

webtweakers avatar Sep 20 '18 20:09 webtweakers

https://github.com/bear/python-twitter/pull/579

There is a pull request that seems to integrate new endpoint. Request is from Aug 2018.

at0m1sk avatar Sep 21 '18 15:09 at0m1sk

Any idea on when this might get resolved?

spacecab07 avatar Sep 26 '18 02:09 spacecab07

Yes the version in the pull request is working for us. There are breaking changes to the function though, which is forced by Twitter's changes in the new direct message endpoint. Probably the biggest change is that screen name is no longer supported as a parameter, so we need to call api.GetUser first to get the user id.

jmingtan avatar Sep 28 '18 16:09 jmingtan

Any news about this? When will the pull request be integrated?

ganmedia avatar Sep 29 '18 11:09 ganmedia

i'll look at this now

bear avatar Sep 29 '18 21:09 bear

added everything and fixed up the tests, changed the docs a few hours ago to the 4.0 dev branch. sorry, been out of commission lately :(

Jeremy Low [email protected]

On Sat, Sep 29, 2018 at 5:37 PM Mike Taylor [email protected] wrote:

i'll look at this now

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/bear/python-twitter/issues/587#issuecomment-425677201, or mute the thread https://github.com/notifications/unsubscribe-auth/AEucDWtagR6WM3-VTyrImGfKGK0R3Lk6ks5uf-gzgaJpZM4WxZXS .

jeremylow avatar Sep 29 '18 21:09 jeremylow

@jeremylow do you want me to merge this to the master and bump the version to 3.6 since it's fixing a broken twitter?

bear avatar Sep 29 '18 21:09 bear

I was thinking a major version bump, since we have to deprecate a bunch of endpoints, but I can do 3.6 too. I'm not married to either option.

On Sat, Sep 29, 2018 at 5:44 PM Mike Taylor [email protected] wrote:

@jeremylow https://github.com/jeremylow do you want me to merge this to the master and bump the version to 3.6 since it's fixing a broken twitter?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/bear/python-twitter/issues/587#issuecomment-425677508, or mute the thread https://github.com/notifications/unsubscribe-auth/AEucDaidk8I6qyzMcIauAcZ9pca5l60Pks5uf-nFgaJpZM4WxZXS .

jeremylow avatar Sep 29 '18 21:09 jeremylow

@jeremylow I think I can make the method signature stay the same to reduce the impact - if screen_name is nil then make the call, if not use it

ok, i'll merge the PR and see if that fixes things

bear avatar Sep 29 '18 21:09 bear

I think I have it working and i've tagged a pre-release for v3.5

Can you all give this a go and see if it works - i'll hold off pushing this to PyPI until someone sanity checks it

bear avatar Sep 29 '18 23:09 bear

Thanks for picking this up. I've checked the v3.5 release and now things work again, as expected! Looking good from my side.

webtweakers avatar Sep 30 '18 11:09 webtweakers

Version 3.5 checked and everything working with no problems. Great job.

ganmedia avatar Sep 30 '18 14:09 ganmedia

Good to go from me!

jeremylow avatar Sep 30 '18 15:09 jeremylow

PostDirectMessage works for me now, but I'm still getting error 34 for GetDirectMessages and GetSentDirectMessages. Looks like these endpoints have been collapsed into "GET direct_messages/events/list". Is this supposed to work in 3.5?

kennethdamica avatar Oct 02 '18 05:10 kennethdamica

Sorry if this is a noob question. So, i need the user_id of the recipient of the DM?

spacecab07 avatar Oct 04 '18 15:10 spacecab07

@spacecab07 if you don’t supply it, the api will attempt to look up the user id from the screen name.

jeremylow avatar Oct 04 '18 15:10 jeremylow

@jeremylow so should be ok to leave as 'user_id=None, screen_name=twitter_handle' ?

spacecab07 avatar Oct 04 '18 15:10 spacecab07

@spacecab07 Yes, I have already confirmed that this works well - also check the code change. The API needs to make an extra call to Twitter now, so it is probably wise to retrieve and store the user_id in your own application once and use that at every DM post.

webtweakers avatar Oct 04 '18 15:10 webtweakers

@webtweakers ok, thanks .

spacecab07 avatar Oct 04 '18 16:10 spacecab07

PostDirectMessage works for me now, but I'm still getting error 34 for GetDirectMessages and GetSentDirectMessages. Looks like these endpoints have been collapsed into "GET direct_messages/events/list". Is this supposed to work in 3.5?

Same here, I am at 3.5 can't GET , error 34 for GetDM and GetSentDM

at0m1sk avatar Oct 14 '18 11:10 at0m1sk

Have the same PostDirectMessage issue and still do not get it done api.PostDirectMessage(directmsg, user_id="xxx") api.PostDirectMessage(directmsg, screen_name="xxx")

But all other works fine like api.GetFriends(screen_name="xxx") api.GetFriends(user_id="xxx")

So what else do I have to do in addition for direct mesages ???

Update: Fix is not official released thus pip install does not work ! Download and install from local file system - now it's working again :-) Many Thanks !!!

MHlinux avatar Oct 27 '18 11:10 MHlinux

Could this please be made a priority for pushing a release to Pypi? Currently, according to what I've been able to figure out, there is no Twitter wrapper in Pypi that actually supports direct messages. I assume there's a number of applications that are badly broken by this and not just mine.

LuccoJ avatar Nov 02 '18 18:11 LuccoJ

Hi, backing up @LuccoJ on this one, you're just one signature way from releasing the working code to pypi. Don't want to be pushy either, I have much respect for all the work you guys put in to maintain the code, but I have been following this thread since its inception and working direct messages can't come soon enough.

Artfulme avatar Nov 02 '18 20:11 Artfulme

My apologies y'all; been a draining couple weeks. I thought the release had been uploaded to PyPI. I'll take care of it this weekend.

jeremylow avatar Nov 02 '18 21:11 jeremylow

3.5 is now on pypi.

jeremylow avatar Nov 03 '18 12:11 jeremylow

Thanks!

Artfulme avatar Nov 03 '18 21:11 Artfulme

I'm using 3.5 and I'm still getting the error 34. I also tried to install from github with same results. Am I'm missing something? How can I help?

pacu avatar Aug 05 '19 20:08 pacu

Started getting this error message last week, and as a relative noob to how the Twitter module work, am having issues figuring out if the problem is same as above. No changes were made to code, no updates to module etc; simply stopped working...

Seems like line 3044 is else line in following statement:

`if return_json: return data else: return [DirectMessage.NewFromJsonDict(x) for x in data]

`

Capture

JunksFiPenny avatar Aug 23 '19 13:08 JunksFiPenny