雑談/ zatsudan /

人過中年就開始健忘,隨手記點東西⋯⋯

取得 Instgram 上的照片

2021/07/25

Instagram 基本顯示 API

  1. 瀏覽器上連到
https://api.instagram.com/oauth/authorize
  ?client_id={CLIENT_ID}
  &redirect_uri={REDIRECT_URI}
  &scope=user_profile,user_media
  &response_type=code
  1. 出現授權要求,同意後會導到 REDIRECT_URI?code={CODE}

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

  1. codetoken
curl -X POST https://api.instagram.com/oauth/access_token \ 
  -F client_id={CLIENT_ID} \ 
  -F client_secret={CLIENT_SECRET} \ 
  -F grant_type=authorization_code \ 
  -F redirect_uri={REDIRECT_URI} \ 
  -F code={CODE}

// Response
{
    "access_token": "...", 
    "user_id": ...
}
  1. 拿上面的 user_idaccess_token 來用
curl -X GET \ 
'https://graph.instagram.com/{user_id}?fields=id,media_type,media_url,username,timestamp&access_token={access_token}'


// Response 資料格式
{
    data: {
        id: string, // image id
        caption: string
    }[],
    paging: {
        "cursors": { "before": string, "after": string },
        "next": string // graph url 
    }
}
  1. paging.next 取得下一批資料
curl -X GET {paging.next}
  1. data.id 取得每一張圖的資料
curl -X GET \
'https://graph.instagram.com/{id}?fields=id,media_type,media_url,username,timestamp&access_token={access_token}'

{
    "id": string, // image id
    "media_type": "IMAGE",
    "media_url": string, // image url
    "username": string,
    "timestamp": string // YYYY-MM-DDTHH:mm:ss+0000
}

還不確定怎麼背景執行,總之留點記錄

感覺是不想讓使用者太方便取得所有圖片,整體操作相當麻煩, Instagram 圖形 API只有讓專業帳號用, 說不定就能夠批次取得圖片網址(吧

Jaster