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 帳戶。前往(個人檔案圖示) > 編輯個人檔案 > 應用程式和網站 > 測試人員邀請,然後接受邀請。

您的 Facebook 應用程式現在可於開發模式下存取您的 Instagram 帳戶。

第 4 步:驗證測試用戶

建立下方的授權視窗網址,以您的 Instagram 應用程式編號取代應用程式管理中心 > 產品 > Instagram > 基本顯示 > Instagram 應用程式編號欄位中的 {app-id},然後以您在第 2 步(「有效 OAuth 重新導向 URI」)中提供的網站網址取代 {redirect-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 要求的指令碼行工具或應用程式,然後向 API 傳送以下 POST 要求。

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}

使用您的 Instagram 應用程式編號、Instagram 應用程式密鑰、您的重新導向 URI ,以及我們傳送給您的代碼,來取代 {app-id}{app-secret}{redirect-uri}{code}。如果應用程式管理中心已在您配置 Instagram 應用程式時加入了重新導向 URI,請確保它們與您在上一個步驟所指定的 URI 完全相符,包括行尾的正斜線。

例如:

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 執行的動作,請參閱我們的指南