On September 4, 2024, we announced the deprecation of the Instagram Basic Display API.

Starting December 4, 2024, all requests to the Instagram Basic Display API will return an error message. We recommend that you migrate your app to the Instagram API to avoid any disruption to your services.

Visit our News for Developers blog post to learn more.

開始使用

本教學導覽說明如何在應用程式主控板中配置應用程式、取得短期Instagram 用戶存取權杖,然後使用權杖向 API 查詢 Instagram 用戶的個人檔案。完成教學導覽後,您將對如何取得應用程式用戶的存取權杖和權限,以及如何使用 API 執行基本查詢有基本認識。

本教學導覽假設您可使用指令行工具或 Postman 等應用程式執行基本的 cURL 要求。

準備工作

必備資料:

步驟 1:建立 Facebook 應用程式

前往 developers.facebook.com,點擊我的應用程式,然後建立新的應用程式,並選擇消費者應用程式類型

建立應用程式並進入應用程式主控板後,導覽至設定 > 基本資料,捲動至頁面底部,然後點擊新增平台

選擇網站,新增您網站的網址,然後儲存變更。您也可稍後視需要變更平台,但在本教學導覽中請使用網站

步驟 2:配置 Instagram 基本顯示

點擊產品,找出 Instagram 基本顯示產品,然後點擊設定將其新增至您的應用程式。

捲動至頁面底部,然後點擊建立新應用程式

在出現的表單中,按照以下的準則完成各區塊。

顯示名稱

輸入您剛建立的 Facebook 應用程式的名稱。

有效的 OAuth 重新導向 URI

輸入您的網站網址。網址通常是可擷取重新導向查詢字串參數的專用 URI,但在本教學導覽中使用您網站的網址即可。

例如:https://socialsizzle.heroku.com/auth/

輸入網址後,請儲存變更並再次檢查該網址;我們會根據您的網址結構附加尾端正斜線。請將完整網址複製到某處,因為在後續步驟中您將需要它來取得授權碼和存取權杖。

取消授權回呼網址

再次輸入您網站的網址。最終您仍需要將此變更為可處理取消授權通知的網址,但針對本教學導覽的用途,您可重複使用網站的網址。

資料刪除要求回呼網址

再次輸入您網站的網址。如同取消授權回呼網址,最終您仍需要將此變更為可處理資料刪除要求的網址,但目前重複使用網站網址即可。

應用程式審查

由於您不會在教學導覽期間將應用程式切換為上線模式,因此目前可跳過本節。

步驟 3:新增 Instagram 測試用戶

導覽至角色 > 角色,向下捲動到「Instagram 測試人員」區塊。點擊新增 Instagram 測試人員,輸入您的 Instagram 帳號用戶名稱,並發送邀請。

開啟新的網頁瀏覽器並前往 www.instagram.com,然後登入您剛才邀請的 Instagram 帳號。導覽至(個人檔案圖示)> 編輯個人檔案 > 應用程式和網站 > 測試人員邀請,並接受邀請。

您的 Instagram 帳號現在已可供在開發模式下的 Facebook 應用程式存取。

步驟 4:驗證測試用戶

建構如下的授權視窗網址,將 {app-id} 換成您的 Instagram 應用程式編號(從應用程式主控板 > 產品 > Instagram > 基本顯示 > Instagram 應用程式編號欄位),並將 {redirect-uri} 換成您在步驟 2 提供的網站網址(「有效的 OAuth 重新導向 URI」)。網址必須完全相同

https://api.instagram.com/oauth/authorize
  ?client_id={app-id}
  &redirect_uri={redirect-uri}
  &scope=user_profile,user_media
  &response_type=code

例如:

https://api.instagram.com/oauth/authorize
  ?client_id=684477648739411
  &redirect_uri=https://socialsizzle.herokuapp.com/auth/
  &scope=user_profile,user_media
  &response_type=code

開啟新的瀏覽器視窗,並載入授權視窗網址。視窗隨即出現並顯示您 Instagram 用戶的名稱、應用程式的名稱,以及您應用程式所要求之權限的說明。

登入授權視窗,驗證您的 Instagram 測試用戶,然後點擊授權,授予應用程式您個人檔案資料的存取權限。成功後,頁面將重新導向至您在先前步驟中加入的重新導向 URI,並附加授權碼。例如:

https://socialsizzle.herokuapp.com/auth/?code=AQDp3TtBQQ...#_

請注意,重新導向 URI 的結尾附加了 #_,但它不屬於代碼本身。複製該代碼(不含 #_ portion),以在後續步驟中使用。

授權碼屬於短期代碼,有效時間僅 1 小時

步驟 5:將代碼換成權杖

開啟指令行工具或支援 cURL 要求的應用程式,然後傳送下列 POST 要求至 API。

curl -X POST \
  https://api.instagram.com/oauth/access_token \
  -F client_id={app-id} \
  -F client_secret={app-secret} \
  -F grant_type=authorization_code \
  -F redirect_uri={redirect-uri} \
  -F code={code}

{app-id}{app-secret}{redirect-uri}{code} 換成您的 Instagram 應用程式編號、Instagram 應用程式密鑰、您的重新導向 URI,和我們寄給您的代碼。確認您的重新導向 URI 完全符合您在上一個步驟中指定的 URI,如果您在配置 Instagram 應用程式時,應用程式主控板在結尾加上正斜線,則也必須包含正斜線。

例如:

curl -X POST \
  https://api.instagram.com/oauth/access_token \
  -F client_id=684477648739411 \
  -F client_secret=eb8c7... \
  -F grant_type=authorization_code \
  -F redirect_uri=https://socialsizzle.herokuapp.com/auth/ \
  -F code=AQDp3TtBQQ...

成功時,API 將傳回 JSON 編碼物件,其中將包含短期 Instagram 用戶存取權杖(有效時間為 1 小時)和您的 Instagram 測試用戶編號:

{
  "access_token": "IGQVJ...",
  "user_id": 17841405793187218
}

複製存取權杖和用戶編號,以在後續步驟中使用。

步驟 6:查詢用戶節點

使用指令行工具或應用程式及底下的 cURL 要求,向用戶節點查詢用戶的編號和用戶名稱。將 {user-id}{access-token} 換成您在上一步驟中收到的編號和存取權杖。

curl -X GET \
  'https://graph.instagram.com/{user-id}?fields=id,username&access_token={access-token}'

例如:

curl -X GET \
  'https://graph.instagram.com/17841405793187218?fields=id,username&access_token=IGQVJ...'

或者您可查詢 Me 節點,其將檢驗您的權杖、判斷獲得權杖的 Instagram 用戶編號,然後查詢該用戶。例如:

curl -X GET \
  'https://graph.instagram.com/me?fields=id,username&access_token=IGQVJ...'

成功時,API 以您的 Instagram 用戶的編號和用戶名稱來回應:

{
  "id": "17841405793187218",
  "username": "jayposiris"
}

後續步驟

現在您已知道如何取得權杖及執行基本查詢,接著請閱讀我們的指南,以進一步瞭解 API 所能進行的動作。