推特 Account Activity API 使用体验

前几天使用了一下推特的 Account Activity API,这个 API 支持注册一个 webhook,用于接受授权账户的实时活动(推特文,事件,设置)。

包括以下内容:

  • 推特内容
  • at 提醒
  • 回复
  • 转发
  • 带评论转发
  • 点赞
  • 发出的私信和接收到的私信
  • 关注
  • 拉黑
  • 屏蔽
  • 阅读回执

在试用的过程中,碰到了一些问题,做一个整理。

应用中心创建应用

首先需要到 https://apps.twitter.com/ 在这里按提示创建应用,获得应用的 key 与 Secret。

申请 Account Activity API 试用权限

https://developer.twitter.com/en/apply
到这里按照提示申请API权限,并附上 app ID(app ID相关解释:https://developer.twitter.com/en/docs/accounts-and-users/subscribe-account-activity/overview

申请完成后会收到邮件
申请成功回执

注册 webhook

CRC 测试

webhook 的地址要求通过 CRC 测试,详细要求可以查看
https://developer.twitter.com/en/docs/accounts-and-users/subscribe-account-activity/guides/securing-webhooks

写了一个自己的demo,关于CRC测试的代码:
https://github.com/xingoxu/twitter-like-downloader/blob/master/routes/twitter.js#L13-L23

通过 postman 发送请求注册 webhook

1
2
3
4
5
POST:
https://api.twitter.com/1.1/account_activity/all/env-beta/webhooks.json?url=${你的webhook地址}

Header:
Authorization: Bearer TOKEN

Bearer TOKEN 可以通过https://api.twitter.com/oauth2/token接口获得

注意

通过 postman 发送请求在 subscription 里注册 webhook

1
2
3
4
5
GET:
https://api.twitter.com/1.1/account_activity/all/env-beta/webhooks.json

Header:
Authorization: Bearer TOKEN

获取到刚才的 webhook id

之后

1
2
3
4
5
6
7
8
POST:
https://api.twitter.com/1.1/account_activity/all/env-beta/subscriptions.json

Header:
Authorization: OAuth 1.0

Body:
webhook_id: 刚才的 webhook id

注意这里需要用OAuth 1.0(用于识别注册的user id)

注册完成后不会有任何返回,HTTP Code: 204 No Conent

注册完成后可以通过

1
2
3
4
GET:https://api.twitter.com/1.1/account_activity/all/env-beta/subscriptions/list.json

Header:
Authorization: Bearer TOKEN

可以收到

1
2
3
4
5
6
7
8
9
{
"environment": "env-beta",
"application_id": "12345678",
"subscriptions": [
{
"user_id": "12345678" // <- 自己的user_id
}
]
}

测试

随便对一条推特点赞

可以收到推特来的 webhook object。

自己用这个写了一个推特的bot,可以作为参考。
https://github.com/xingoxu/twitter-like-downloader

微信扫一扫,分享到朋友圈