最近搞了個封面圖製作工具 Cover Paint,使用 Unsplash 作為背景圖,由於 Demo 版本每小時只能訪問 50 次並不夠用,所以需要申請 Production 版本(每小時 5000 次請求)。
由於一開始沒有細看申請的要求導致審核了有三四次才通過,這邊文章就記錄一下具體的過程。
創建 App#
- 進入 Unsplash Image API官網,註冊登入並點擊
Your apps
按鈕 - 點擊
New Application
創建一個新的應用 - 同意所有條款,輸入應用名稱和描述
- 至此,新的 Demo 版本的應用已經創建好了
使用 Unsplash api#
在前端我使用的是 unsplash-js 這個官方提供的庫,具體使用的方法可以看官方的文檔。
其中需要的 key 可以在上一步創建的應用界面找到
申請 Production 版本#
可以提前查看 Unsplash API Guidelines。建議先將自己做的網站或別的類型的產品 Unsplash 相關部分先做完再進行申請,每小時 50 次是夠開發用的。因為申請應該是需要提交代碼截圖的。需要注意的是產品的名稱不要和 Unsplash 雷同。
添加圖片作者的信息#
每一張圖片底部或其他位置都需要添加醒目的所屬作者的信息,點擊作者名稱可以跳轉到對應的 Unsplash 攝影師詳情頁(圖片的所有信息包括攝影師等 unsplash-js
已經提供了)。
注:這裡需要上傳一張截圖(最好是提供視頻)。如果是 web 應用,需要鼠標放在攝影師名字鏈接上,瀏覽器左下角會出現跳轉的鏈接地址。如果是其他類型的應用,則需要添加代碼截圖,表示點擊攝影師名稱會跳轉到對應的網頁。並且鏈接必須添加 utm
參數。
如下:其中 utm_source
可填寫為創建的應用名稱
<a
target="_blank"
href={`https://unsplash.com/@${user.username}?utm_source=cover-paint&utm_medium=referral`}
>
{user.name}
</a>
追蹤下載#
如果下載量為 0,則審批不會通過。
已我的項目舉例,當點擊圖片並添加了文字信息後。點擊下載時,需要追蹤這個下載的行為,unsplash-js 中提供了這個 api,unsplash-js-downloadtrack。當下載完成時調用這個 api 即可。
這裡可以提供一張截圖,並且在開發時就需要觸發這個追蹤下載行為,因為下載這個數據可能需要等到第二天才會有數據顯示。
const downloadCover = async () => {
const ref = coverRef?.current as HTMLDivElement;
if (ref === null) {
return;
}
setDownloading(true);
toPng(ref, { cacheBust: true })
.then((dataUrl) => {
const link = document.createElement("a");
link.download = `coverImage.png`;
link.href = dataUrl;
link.click();
})
.catch((err) => {
console.log(err);
})
.finally(() => {
setDownloading(false);
});
if (unsplashInfo) {
await trackDownload(unsplashInfo.downloadLocation);
}
};
添加應用描述信息#
最後一步需要在應用界面填寫完整詳細的應用描述,並盡可能的提供項目的截圖或視頻。你要做一個什麼應用,在項目中使用 Unsplash API 做什麼。如果有可能可以提供一個項目 demo 地址。
如圖我是這樣填寫的。
通過上述幾步應該可以申請到 Production,並且審核的時間還挺快的(48 小時之間一般都是有回復的)。如果申請不通過可根據郵件提示內容再繼續補充所需資料。