首页 > 解决方案 > 通过 API 访问数据后,如何自动化推文?

问题描述

我正在编写一个 twitter 机器人,但在此过程中我遇到了挑战。

该代码将从 API 获取数据并每天发布数据。不幸的是,我无法让最后一行的返回函数正常工作,它实际上会发送推文。

import urllib.request
from pprint import pprint
import json
import datetime
import tweepy
import time 
import os 
import logging

def importVax():
    link = 'https://data.ontario.ca/api/3/action/datastore_search?resource_id=8a89caa9-511c-4568-af89-7f2174b4378c&limit=100'
    query = urllib.request.urlopen(link)
    query = json.loads(query.read())


    for r in query['result']['records']:
        date = datetime.datetime.strptime(r['report_date'][0:10], "%Y-%m-%d").date()
        previous_day_admin = r['previous_day_doses_administered']
        total_admin = r['total_doses_administered']
        total_complete = r['total_vaccinations_completed'] 

        if previous_day_admin == '':
            previous_day_admin = 0
        
        print(date, previous_day_admin, total_admin)

if __name__ == '__main__':
    importVax()

consumer_key = 'REDACTED'
consumer_secret ='REDACTED'

access_token = 'REDACTED'
access_token_secret = 'REDACTED'

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)

api = tweepy.API(auth)

def daily_update(date, previous_day_admin, total_admin, total_complete):
    message = str(
    f'''
[{date}]
Doses Administered: {previous_day_admin}
Total Completed Vaccinations: {total_complete}
% Immune: {round(total_complete/14570000)}
    '''
    )
    return api.update_status(message)

标签: pythontweepy

解决方案


推荐阅读