打開 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ù)了。