今日头条Marketing API小工具(.Net Core版本)
前言
由于工作原因,需要用到今日頭條的Marketing API做一些廣告投放的定制化開發。然后看現在網上也沒多少關于頭條Marketing API的文章,于是便就有了該篇文章。
頭條Marketing API主頁地址:https://ad.toutiao.com/openapi/index.html。
頭條Marketing API開發文檔:https://ad.toutiao.com/openapi/doc/index.html
?
交互圖
典型的OAuth2.0授權流程:
?
使用步驟
1. 首先需要去主頁注冊一個開發者賬號,并申請一個APPID,設置好回調地址
? 因為從頭條重定向回自己的站點只是瀏覽器行為,所有回調地址填寫本機可訪問的地址即可(不需要頭條能訪問),這里是http://localhost:5000/api/auth/callback。
?
2. 在appsettings.json中設置APPID + Secret
3. 啟動項目,即可直接在swagger中使用
?
程序邏輯
1. 在launchsettings.json中設置啟動地址為http://localhost:5000/api/auth
2. 瀏覽器訪問地址http://localhost:5000/api/auth,會重定向到今日頭條的認證地址,并且拼接好參數
3. 跳轉到今日頭條的認證地址并點擊“同意授權”
?
4. 重定向回http://localhost:5000/api/auth/callback并帶回了auth_code參數
?
5. 利用AuthCode + AppId + Secret調用頭條認證API獲取AccessToken,并把AccessToken緩存到內存中,然后重定向回swagger
調用頭條API
0. 示例代碼
1. 根據文檔拼接對應參數
var url = "https://ad.toutiao.com/open_api/2/ad/get/" + "?advertiser_id=" + advertiserId + "&page=" + page + "&page_size=" + pageSize;?
2. 從緩存中取出之前得到的AccessToken
_cache.Get<string>(ToutiaoCacheKey.AccessToken)?
3. 構造請求頭信息
client.DefaultRequestHeaders.Add("Access-Token", accessToken);?
4. 調用API,并把返回的json反序列化為dynamic類型
var response = await _restClient.GetAsync<DynamicResponse>(url, _cache.Get<string>(ToutiaoCacheKey.AccessToken));?
5. 輸出結果到瀏覽器
說明:示例中只有查詢類API,沒有操作類型的API,主要是考慮到操作可能會影響到現有業務。
?
操作類型API
代碼調用操作類型的API時,可能需要構建請求json對應的實體,這里可以使用Visual Studio的選擇性編輯功能,快速生成對象。
示例:
1. 拷貝json
2. 新建一個cs文件,點擊Visual Studio菜單欄的“編輯” -> “選擇性編輯” -> “保存json為類”
?
3. 設置JsonProperty(可選,規范、美觀考慮)
?
其實,頭條的開發文檔中有提供操作API的示例json,但是示例json的字段有些不全,而請求API的結果基本包含了操作API的字段。
因此,可以使用操作API的返回json來生成操作請求。同時,這個小工具也可以做一些前期的簡單查詢。
?
源碼地址
https://github.com/ErikXu/ToutiaoApi
原文地址:https://www.cnblogs.com/Erik_Xu/p/10055384.html
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結
以上是生活随笔為你收集整理的今日头条Marketing API小工具(.Net Core版本)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .NET Core实战项目之CMS 第九
- 下一篇: .NET Core实战项目之CMS 第十