顯示具有 dev 標籤的文章。 顯示所有文章
顯示具有 dev 標籤的文章。 顯示所有文章

2013年3月13日 星期三

Twitter 1.1 API的Search不再是不需要Authentication的了

以往Twitter的search API是不需要任何認證, 也不需要設定啥App ID或啥consumer key的, 不過, 在API 1.1之後, 這就改了

因為1.1, search也列入rate limit的追蹤囉, 所以使用search API也要做認證(Authentication), 但由於search api的使用情境, 不見得一定需要使用者登入, 有些做資料分析的應用也有可能會用到, 所以強制用OAuth就有點不是很合理, 所幸, 除了用OAuth以外, 這類的API也可以使用Application-only authentication:


  1. 首先必須要用Basic Auth的方式取得token, 用consumer key當user name, consumer secret當password去呼叫/oauth2/token的API
    1. 使用POST
    2. 必須要有grant_type=client_credentials
  2. 成功的話就會得到access_token (注意token type為bearer)
  3. 使用這個token去呼叫API (search或其他不需要user login的API)
    1. 把token加在HTTP的Authentication header (像是: Authorization: Bearer AAAAAAAAAAAAAAAA )
    2. 一定要走SSL (https), 如果是非SSL會碰到"Bad Authentication data"的錯誤
以下是Sample code (使用Go):