今天使用 Python 與 Twitter API 來開發一個 OSINT 搜集工具。
Twiiter API [1]提供一個方便的介面讓我們可以快速搜尋或分析 Twitter 推文。
那別人寫過類似的文章我們就不碰,
所以看到官網現在最新的版本是 Twitter API v2
使用免費方案即可
限制如下:
其他限制可以看參考來源 1
總之先來註冊
https://developer.twitter.com/en/portal/petition/essential/basic-info
看完他的協議與原則,同意後送出。
不過他跳出要我先驗證電話號碼的訊息。
There was a problem completing your request
User must have a verified phone number on file prior to submitting application.
回到 Titter 設定先驗個電話號碼。
正之後會驗證 Email,下一步想一個 App Name
會得到三串 key 好好保存
然後到 Twitter-API-v2-sample-code 看一下有沒有寫好的範本我們可以直接改來節省時間
https://github.com/twitterdev/Twitter-API-v2-sample-code
從文件看到
Endpoint-specific scripts and libraries
search-tweets Python - Python library for the v2 and enterprise search endpoints
有現成的 Python 套件
https://github.com/twitterdev/search-tweets-python
看了一下文件,
免費用戶不能用...那這條路先放棄
This project serves as a wrapper for the Twitter premium and enterprise search APIs, providing a command-line utility and a Python library.
之後在 Github 上找到另一個 python-twitter 專案
https://github.com/bear/python-twitter
上面的文件是舊版的...不確定ok不ok
總之我拿我寫這篇文章時看到的內容去做
仔細比對要獲取存限的要求...發現版本應該不同,
那就自己打 v2 的 API 來用吧
點到 Products 的 Twitter API v2
我們主要的功能應該要能搜尋比較相近的方法
叫做 Search Tweets 看一下文件
功能大致上是「搜索推文是一項重要功能,用於顯示有關特定主題或事件的 Twitter 對話[2]」
資格免費方案符合
使用 Python 需要一些前置處理
pip install requests
pip install requests-oauthlib
看一下 API 文件的參數要求
(Python 程式改為下一篇)
Postman[3]是一個API平台,供開發人員設計,構建,測試和迭代其API。
想了想還是明天再用 Python 抓,
今天先用這個工具來幫忙,
因為 Twitter API v2 走的是 Oauth 2.0
先到這裡 fork 專案
找到 Search Tweets
選擇 Get Recent Search
在 Params 的 query 參數填上 threat intelligence
然後切到 Authorization
Type 選擇 Oauth 2.0
在 Acces Token 填上上面註冊 Twitter 開發者提供的 Bearer Token
這一定要填喔
否則會回傳 401 code
送出後
我們就收到 JSON 格式的關於 threat intelligence 關鍵字的推文內容
這篇文是邊做邊寫,所以有點混亂,整個工具完成有時間再重新編排,下一篇,將改為 Python 處理請求與回應。
[1] Twitter. Getting started. https://developer.twitter.com/en/docs/twitter-api/getting-started/about-twitter-api
[2] Search Tweets https://developer.twitter.com/en/docs/twitter-api/tweets/search/introduction
[3] wekipedia. https://en.wikipedia.org/wiki/Postman_(software)