以下是使用node.js编写的调用Twitter Account Activity API 的代码

image.png

因为我在Node.js中试过,所以我将解释示例代码。

– API参考文档—Twitter开发者API文档可以在这里找到。
– 开发环境—当使用Twitter开发者账户活动API时,需要将应用程序与之关联。

做法 (yà fā)

确定终点URL。由于是WebHook,所以可以从外部调用页面。
在这个示例中,我们将使用https://example.com/twitter-webhook-test/。当然,路径名可以随便取。
另外,还要确定应用程序的标签名称。由于它将成为URL的一部分,所以最好只有一个单词。在这次测试中,我们将使用test。

image.png
image.png
image.png

通过此操作,您已成功完成了从Twitter网页上的设置。

下面是在自己的服务器上进行的操作。我们决定在之前提到的终端点域名服务器上执行。首先需要搭建 nodejs 环境。由于使用的 API 包括通用和企业级两种,它们的 URL 不同。而且官方提供的示例不太方便使用,所以需要进行重新编写。

下载 https://github.com/fushihara/twitter-account-activity-api-sample 的代码库。
确认在克隆的文件夹中存在以下四个文件。

cli.js
config.sample.json
package.json
server.js

将config.sample.json复制到config.json中。填写上述备注的信息。
此时hookId的项目可以为空字符串。expressWatchPath应与webhookUrl的路径部分匹配。
devLabel是应用程序的标签名。


{
  "TWITTER_CONSUMER_KEY": "xxxxxx",
  "TWITTER_CONSUMER_SECRET": "xxxxxx",
  "TWITTER_ACCESS_TOKEN": "xxxxxx",
  "TWITTER_ACCESS_TOKEN_SECRET": "xxxxxxx",
  "devLabel": "test",
  "hookId": "",
  "webhookUrl": "https://example.com/twitter-webhook-test/",
  "expressWatchPath":"/twitter-webhook-test/"
}

然后启动node server.js。按照提示,在5000端口上监听,所以可以更改nginx环境,或者直接将监听端口改为80。

[xxx@example.com twitter-webhook-sample]$node server.js 
Node app is running on port 5000

如果从浏览器访问webhookUrl时显示错误:请求中缺少crc_token,请显示该消息,那就可以了。

再打开一个终端。
接下来使用cli.js。移动到包含上述脚本的相同目录下,依次给cli.js传递参数 regist subsc get-list 并执行。这样就准备好接收了。

[xxx@example.com twitter-webhook-sample]$node cli.js regist
{"id":"900000000000000000","url":"https://example.com/twitter-webhook-test/","valid":true,"created_timestamp":"2018-05-16 19:07:54 +0000"}
[xxx@example.com twitter-webhook-sample]$node cli.js subsc
204 No Content

[xxx@example.com twitter-webhook-sample]$node cli.js get-list
[{"id":"900000000000000000","url":"https://example.com/twitter-webhook-test/","valid":true,"created_timestamp":"2018-05-16 19:07:54 +0000"}]

请确认在server.js的终端中收到了CRC校验,日志内容为”token=xxxxxxxx responce=xxxxxxxxxxxxx=”。
然后,在Twitter上用自己的账号发送推文或喜爱自己喜欢的推文。这样,server.js的终端就会流动以前类似流媒体API的JSON数据。
好像只能看到自己的推文。在官方上写着即使是免费用户也有”15 subscriptions / period”,不知道这15次是指什么……

当解除注册时,请将上述终端显示的id(本次为900000000000000000)填入config.json的hookId字段,并执行node cli.js del。

我认为通过这个步骤即可确认已完成注册、确认和删除。 这无法完全替代流API。 正如公告所述,流API将于2018年8月16日停止服务。

我没有别的问题了。