我在 Strava 上创建了一个应用程序。在我的帐户上授权我的应用程序具有read,activity:read,activity:read_all,read_all权限。
我不想轮询他们的 API 来了解活动,因为他们为此推荐了 webhook。
因此,我创建了一个 Webhook 订阅并通过回调 url 对其进行了验证。
以下是 Strava API 对我成功创建的 webhook 订阅的响应:
[
{
"id": 179***,
"resource_state": 2,
"application_id": 59***,
"callback_url": "http://*************.duckdns.org:8100/strava/webhook",
"created_at": "2021-01-22T20:42:46Z",
"updated_at": "2021-01-22T20:42:46Z"
}
]
Run Code Online (Sandbox Code Playgroud)
我的问题是我没有收到任何活动事件。
我收到的唯一事件是当我从帐户中删除应用程序时撤销访问权限事件。
{
'aspect_type': 'update',
'event_time': 1611350203,
'object_id': 6881533,
'object_type': 'athlete',
'owner_id': 6881533,
'subscription_id': 179***,
'updates': {'authorized': 'false'}
}
Run Code Online (Sandbox Code Playgroud)
所以这表明我的观点是正确的,因为事件已收到。
我尝试向 Strava 发送电子邮件,但收到的只是一条自动回复,告诉我使用 Strava API Google 群组寻求帮助,这根本没有帮助。
有谁知道出了什么问题吗?
终于解决了我的问题,并将解决方案写在这里供其他人使用。可能没有这个问题的人正在使用已经获得授权的编码语言中的 Stravaaccess_token库refresh_token。
如果您像我一样自己处理 Strava Webhook API,则在授权后,您必须获得您的access_token和 ,refresh_token如此处所述https://developers.strava.com/docs/getting-started/#oauth
Strava Webhook API 文档对此没有任何说明,因为access_token创建 Webhook 订阅不需要它。Strava API 创建订阅并返回成功的响应。这是具有误导性的,因为您的端点不会收到任何 Webhook 事件