bear / python-twitter

A Python wrapper around the Twitter API.
Apache License 2.0
3.41k stars 957 forks source link

New Direct Message endpoint needs to be implemented #587

Open melyux opened 6 years ago

melyux commented 6 years ago

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.

webtweakers commented 6 years ago

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

at0m1sk commented 6 years ago

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

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

spacecab07 commented 6 years ago

Any idea on when this might get resolved?

jmingtan commented 6 years ago

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.

ganmedia commented 6 years ago

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

bear commented 6 years ago

i'll look at this now

jeremylow commented 6 years ago

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 JeremyLow@gmail.com

On Sat, Sep 29, 2018 at 5:37 PM Mike Taylor notifications@github.com 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 .

bear commented 6 years ago

@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?

jeremylow commented 6 years ago

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 notifications@github.com 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 .

bear commented 6 years ago

@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 commented 6 years ago

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

webtweakers commented 6 years ago

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

ganmedia commented 6 years ago

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

jeremylow commented 6 years ago

Good to go from me!

kennethdamica commented 6 years ago

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?

spacecab07 commented 6 years ago

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

jeremylow commented 6 years ago

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

spacecab07 commented 6 years ago

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

webtweakers commented 6 years ago

@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.

spacecab07 commented 6 years ago

@webtweakers ok, thanks .

at0m1sk commented 5 years ago

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

MHlinux commented 5 years ago

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 !!!

LuccoJ commented 5 years ago

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.

Artfulme commented 5 years ago

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.

jeremylow commented 5 years ago

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 commented 5 years ago

3.5 is now on pypi.

Artfulme commented 5 years ago

Thanks!

pacu commented 5 years ago

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?

JunksFiPenny commented 5 years ago

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