簡體   English   中英

將Twython端點更新為新api在send_direct_message上出錯

[英]Updating Twython endpoints to the new api is erroring on send_direct_message

經過研究,發現最新版本的Twython仍在某些功能上使用先前的端點(到目前為止,獲取和發送直接消息),我已將端點調用更新為以下內容。

def get_direct_messages(self, **params):
    return self.get('direct_messages/events/list', params=params)

def send_direct_message(self, **params):
    # return self.post('direct_messages/new', params=params)
    return self.post('direct_messages/events/new', params=params)

前者現在正在按預期方式工作並正在檢索我的消息。 另一方面,稍后仍會給我以下非描述性錯誤

TwythonError('An error occurred processing your request.')

之前是

twython.exceptions.TwythonError: Twitter API returned a 404 (Not Found), Sorry, that page does not exist.

這種進步使我相信自己走在正確的道路上,現在我想知道是否只是我的要求沒有正確形成?

class Messages:
keys = creds.set_keys()
twitter = Twython(keys["key_twitter"],
                  keys["secret_twitter"],
                  keys["token_twitter"],
                  keys["token_secret_twitter"])

    def send_test_msg(self):
        try:
            self.twitter.send_direct_message(type='message_create', recipient_id="raelonmasters", message_data="first test!")
        except Exception as e:
            pprint.pprint(e)

我一直在參考官方文檔

https://developer.twitter.com/en/docs/direct-messages/sending-and-receiving/api-reference/new-event

試圖找出答案,我們將不勝感激!

編輯{我應該補充一點,我的應用程序憑據已設置為讀寫和直接發送消息}

經過進一步的研究和整夜的睡眠,我重寫了api函數以允許我發送消息。

twython / api.py

    def post_message(self, endpoint, userid, msg, version='1.1'):
    return self.request('direct_messages/events/new',
                        'POST', params='{"event": {"type": "message_create", '
                                       '"message_create": {"target": {"recipient_id": "'+userid+'"}, '
                                       '"message_data": {"text": "'+msg+'"}}}}', version=version)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM