搜尋此網誌

2022年9月26日 星期一

Instagram API 取得使用者 id

緣起:


    今天開始研究 Instagram 的 API,Instagram 現在是 Facebook 旗下的產品,我想說,既然我都會弄 Facebook 的 API 了,而且 Facebook API 的那些 APP 也有 instagram 的權限能設定


    那 Instagram 的 API 也差不多就那樣吧,我只要在 Facebook Developer 弄個 APP,然後給 APP 需要的權限,在 Graph API 按下 Generate Access Token 後,它就會跳出一個要我 instagram 授權的畫面 (我的 instagram 是用 fb 註冊的),完成後就會產生一個權杖,我就可以拿著那個權杖來對 Instagram 的 API 做存取,簡簡單單的完成任務


    結果沒我想的那麼簡單,我發現對於 Instagram API endpoint 的存取,都會需要 user id 的欄位,那個 user id 要怎麼找,我在 google 上怎麼查都查不到,我也試了這邊提到的所有方法,全都失敗,走投無路之下,我就回去把官方的 Instagram API 文件從最基本的看起,最後發現,原來使用 Instagram 的 API 會需要

    你的 Instagram 要建立創作者或商家帳號 -> 你要用你 Facebook 帳號創立一個粉絲專頁 -> 建立一個 Facebook API 的 APP,給它管理粉專的權限,並將它加到你創立的粉專 -> 在你的粉專加入你 Instagram 的創作者或商家帳號

    沒錯,步驟很麻煩,我做到後來都忘了我是設定了哪些東西後才成功的,所以我在寫這個文章時,會順便把我印象中的動作都做一次,邊做邊紀錄。


Instagram 商家帳號:


    登入你要拿來自動 po 文的 Instagram 帳號,到設定那邊,選擇 "切換為專頁帳號"


    這邊我選 "創作者"

    更正 : 要能用 API PO 文的話一定要使用 "商家" 帳號,不能選創作者 !!!!! 如果選錯的話,到時也能改就是了,只不過權杖到時還要重新產生。


    類別的話就看自己,我是隨便選


    大概這樣就行


    之後還能在設定上切回普通帳號或商業,不過切回普通帳號後,你專業帳號的東西會被刪,到時無法再切回去,只能重弄一個



粉絲專頁加入 Facebook API 的 APP:


    這東西之前就有弄過了,只是我現在想重新整個弄一次,並且把這個新創的粉絲專頁跟 APP 用於 Instagram 上,也順便檢查一下,整個使用下來,會需要給那個 APP 什麼樣的權限。

新創的社團

新創的 APP

    啊我那個 APP 跟社團怎麼不直接叫 "測試 IG.." 之類的 ? 因為它不給我用 "Instagram" 或 "IG" 這個字眼.....

    再來是在 graph api 那邊設定 APP 的權限,在那個 "用戶或粉絲專頁" 的下拉選單中,選擇 "粉絲專頁" 後就會跳出授權許可的頁面


    選擇目標社團


    這兩個權限是一定會有的


    完成後,你的 APP 就會自動加入 pages_show_list 跟 pages_read_engagement 權限



    之後在 Facebook 的 設定 -> 帳號安全和登入 -> 企業整合工具,可以看到你加入的 APP



粉絲專頁連結 Instagram 帳號:


    點進你 Facebook 粉絲專頁的設定那邊,有個 Instagram 的選項


    點選連結帳號


    繼續


    然後使用你的 Instagram


    完成後刷新頁面,就能看到



    再來就能透過我們這個 Facebook API 的 APP 來使用我們的 Instagram 帳號了


使用 Instagram API 取得 user id:


    再來進入重點,Instagram API 的使用,這個是我參考的官方文件。它說的準備工作就我上面做的那堆事


    在 Facebook developer 選擇你的 APP,並進入 graph api,你的 APP 記得要加入 instagram_basic 這個權限


    再來產生一個用戶權杖,它會出現授權的畫面,授權步驟會多一個讓你選擇 Instagram 商業帳號,其它就照之前的設定


    拿到權杖後,在 graph api 上對 /me/account 這個端點做 GET 查詢,沒錯的話應該會有這樣的回應,把粉絲專頁的 id 記下來 (紅線)


    接著,在 POST Man上對以下這個端點做 GET 請求,直接在 graph api 上請求也行啦,只是那個欄位要填的就變成 {page-id}?fields=instagram_business_account,不用加 access_token

/v15.0/{page-id}?fields=instagram_business_account&access_token={access-token}


    那個 page-id 就我們剛剛記錄的,access-token 就那個使用者權杖,成功的話就能得到跟這個粉絲專頁連結的 IG 商業帳號的 id。



沒有留言:

張貼留言