此处需求:腾讯公众号每日推送,通过PHP代码实现,并完成API接口,但PHP好像没有定时任务,而自己又不想安装别的环境,因此试图通过windows自带的方法实现定时调用。
不需要反馈结果
$url = "your_api_url"
Invoke-WebRequest -Uri $url
将文件保存为weather_api.ps1
测试脚本:打开PowerShell,导航到脚本所在的文件夹,然后运行以下命令:
.\weather_api.ps1
测试确保接口能够顺利调用
设置Windows任务计划程序:
打开"任务计划程序":点击"开始"按钮,输入"任务计划程序",并打开它。
点击右侧栏的"创建基本任务"。
中间步骤省略……
出发频率自行设置……
在"程序或脚本"框中输入 powershell.exe的地址
参考地址C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
然后在"添加参数(可选)“中输入 weather_api.ps1-ExecutionPolicy Bypass
实操输入:D:\useapi\test.ps1
其中:-ExecutionPolicy Bypass
将允许PowerShell绕过执行策略限制并运行脚本。点击"下一步”。
点击"下一步",确认任务设置,然后点击"完成"。
现在你已经成功设置了一个定时任务,在指定的时间间隔内调用API接口,而无需安装任何额外的软件。
需要反馈结果
将powershell脚本替换,注意api_key等参数及print内容自行调整。
import requests
def get_weather_data():
a1 = "……"
a2 = "……"
url = f"http://api.openweathermap.org/data/2.5/weather?q={a2}&appid={a1}&units=metric"
response = requests.get(url)
data = response.json()
print(f"City: {data['name']}")
print(f"Temperature: {data['main']['temp']}°C")
print(f"Weather: {data['weather'][0]['description']}")
if __name__ == "__main__":
get_weather_data()