Giphy API 教學|迷因愛好者的 API 首選。
✨ 實際應用
LineBot 迷因圖片搜尋|寫了一個酷東東 — Meme Search LineBot
✨ 目錄
🥸 Giphy API
🤩 如何註冊及獲得 Giphy API Key
🥸 Giphy API 的基本使用方式
🤩 回傳的資料
🥸 python 範例
🤩 錯誤訊息 status
✨ Giphy API
Giphy API 是一種提供動態圖像 (GIF) 的 API。它可以讓開發人員搜尋、獲取和使用大量的 GIF 圖像。
Giphy API 提供了以下主要功能:
- 搜尋:開發人員可以通過關鍵字或表情符號搜尋指定的 GIF 圖像。
- 取得圖像:可以取得指定的 GIF 圖像的 URL,以便在應用程式或網站上使用。
- 轉換:可以將靜態圖像轉換為動態圖像。
- 自訂分類:可以創建自己的 GIF 分類以方便搜尋。
- 儲存:可以儲存搜尋到的 GIF 圖像。
Giphy API 也提供了其他多種輔助功能,例如可以調整圖像大小、速度等。使用 Giphy API 可以快速且輕鬆地在應用程式或網站上使用大量的 GIF 圖像。(但是 linebot 只能傳 mp4 檔案給用戶,有點小可惜)
✨ 如何註冊及獲得 Giphy API Key
STEP 1:Giphy 官網:https://developers.giphy.com/
STEP 2:點擊「Create account」,然後點擊「Sign Up」。
STEP 3:輸入姓名、電子郵件地址和密碼,然後點擊「Sign Up」。(*驗證信會寄到垃圾郵件中🥸🥸🥸)
STEP 4:在 Dashboard 中點擊「Create an App」。
STEP 5:有 SDK 跟 API,要選擇「API」,輸入應用程式名稱和簡介,然後點擊「Create App」。
STEP 6:複製 API Key。
✨ Giphy API 的基本使用方式
Giphy 提供兩種 API,
- Gif URL (api.giphy.com/v1/gifs/search)
- Sticker URL (api.giphy.com/v1/stickers/search)
使用方式
https://api.giphy.com/v1/gifs/trending?api_key="api_key"&limit=5&rating=g
- trending:表示要找熱門迷因 ( endpoint 還有很多,包括 Search 關鍵字搜尋、Translate、Random 隨機抓出一個、Get By Id、Trending)
- api_key:自己的 key
- limit:要幾張
可以直接使用 Giphy API 提供的 UI 介面做測試:https://developers.giphy.com/explorer/
✨ 回傳的資料
JSON,data 為收到的資料,meta 為請求的狀態。
✨回傳的資料 python 範例
用 python 取得前 10 熱門的 GIF 檔
# 熱門前10張
def getTrend():
url = f"https://api.giphy.com/v1/gifs/trending?api_key={api_key}&limit=10"
response = requests.get(url)
if response.status_code == 200:
data = json.loads(response.content.decode("utf-8"))
gifs = data["data"]
for i, gif in enumerate(gifs):
gif_url = gif["images"]["original"]["url"]
gif_response = requests.get(gif_url)
with open(f"gif_{i}.gif", "wb") as f:
f.write(gif_response.content)
print(f"gif_{i}.gif saved")
else:
print("Something went wrong")
✨ 錯誤訊息 status
- 200,OK,請求成功
- 400,Bad Request,請求格式不正確或缺少必需的參數
- 401,Unauthorized,請求缺少目標資源的有效身份驗證憑據,API 密鑰問題。
- 403,Forbidden,無權限;API 密鑰問題。
- 404,Not Found,找不到請求的 GIF。例如,如果使用不存在的 ID 請求 GIF,就會發生這種情況。
- 414,URI Too Long,搜索查詢的長度超過 50 個字符。
- 429,Too Many Requests,API 密鑰發出的請求過多。
✨小結
最近好喜歡玩這些有趣的 API ( ´•̥ו̥` )