用 Instagram API 來理解,接口是什么?接口是怎么運作的?(二)

打開 Authentication 頁面,我們需要獲取一個 access_token,這是訪問令牌。簡單來說,就是可以讓你在一定時間內(nèi),不需要每次都驗證 ID 和 Secret,來獲取數(shù)據(jù)的一個令牌。

為了安全,令牌有有效期,過了有效期令牌就會失效,我們要重新獲取領(lǐng)取。這是為什么有些 app 我們太久沒打開,要求重新登錄的原因。

怎么獲得 access_token,根據(jù)提示,我們需要訪問下面這個地址:

https://api.instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=code

注意,不是復(fù)制這段 URL 去訪問,大寫字母是需要我們替換的內(nèi)容。我們剛才拿到了 Client ID 和 Redirect URIs,所以最終我需要訪問的 URL 是:

https://api.instagram.com/oauth/authorize/?client_id=a273c29c3ff64fc1804beb63cb85ca17&redirect_uri=http://localhost&response_type=code

怎么訪問?直接復(fù)制到瀏覽器地址欄,回車即可。(你要替換成你自己的資料,我的肯定是失效的。)

這時,我們會打開一個授權(quán)頁面,問你是否授權(quán)測試這個應(yīng)用,點授權(quán)即可,然后頁面會重新跳轉(zhuǎn)。

等下,頁面掛了?別擔心,只是重定向了,留意地址欄,變成了:

http://localhost/?code=7d4bd932226747c1ad022855e6d2f356

code 是 7d4bd932226747c1ad022855e6d2f356。

我們獲得了 code 信息,暫時還沒拿到 access_token,但就差最后一步了。往下翻,我們需要再有這樣一個請求:

    curl -F 'client_id=CLIENT_ID' \
    -F 'client_secret=CLIENT_SECRET' \
    -F 'grant_type=authorization_code' \
    -F 'redirect_uri=AUTHORIZATION_REDIRECT_URI' \
    -F 'code=CODE' \
    https://api.instagram.com/oauth/access_token

同樣地,我們把大寫字母都替換一下,換了我們剛才拿到的資料,即變成:

    curl -F 'client_id=a273c29c3ff64fc1804beb63cb85ca17' \
    -F 'client_secret=b548b985e53749518c4c22f693b6c9fb' \
    -F 'grant_type=authorization_code' \
    -F 'redirect_uri=http://localhost' \
    -F 'code=7d4bd932226747c1ad022855e6d2f356' \
    https://api.instagram.com/oauth/access_token

注意檢查一下,復(fù)制粘貼的時候不要多出空格。然后這次我們不是在瀏覽器輸入,Mac 是在「終端 (Term)」這個 app 里面,Windows 是在命令行。

輸入后回車,就能得到我們想要的結(jié)果了。

{
  "access_token": 
  "631487536.a273c29.573aa95fa1b6403db80fe6ac60191c4f", 
  "user": {
    "id": "631487536", 
    "username": "ethonlau", 
    "profile_picture": "https://scontent.cdninstagram.com/vp/8a497f3eebaea72dda8fe47ddee1d3a8/5BBAF55E/t51.2885-19/s150x150/13129637_1738545199758157_1620655362_a.jpg", 
    "full_name": "\u5218\u82f1\u6ed5"
  }
}

這時,我們的 access_token 已經(jīng)拿到,access_token 是 631487536.a273c29.573aa95fa1b6403db80fe6ac60191c4f,依然是把它記下來。

(code 只能用一次,如果你剛才沒把 access_token 記下來,請重來一遍。)

咦?我們還發(fā)現(xiàn)了一些熟悉的信息。比如 username 不就是我 Instagram 的名字嗎?把 profile_picture 的地址在瀏覽器訪問一下,居然就是我的頭像圖片了!沒錯,這是我們剛才用于授權(quán)的那個用戶的資料。

這就是一次簡單的接口請求。接口的地址是 https://api.instagram.com/oauth/access_token,把所需要的資料填對,一并發(fā)送,接口就會給我們返回數(shù)據(jù)了,而這種數(shù)據(jù)交換格式便是 json。只不過實際上,我們會用更復(fù)雜和強大的工具去請求數(shù)據(jù)而已。

現(xiàn)在有了 access_token,我們可以去請求更多數(shù)據(jù)了。


下一篇

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容