通用接口
網(wǎng)站開放API接口說明頁面。
通用接口云夢API開放平臺是基于云夢建站技術(shù)實踐經(jīng)驗,面向云夢建站用戶及合作伙伴,提供高易用的API服務(wù)。目前適用于“云·速成美站”、“云·企業(yè)官網(wǎng)”內(nèi)的文章、產(chǎn)品的增、刪、改、查操作,旨在幫助用戶加速創(chuàng)建網(wǎng)站的文章、產(chǎn)品。
本產(chǎn)品(云·速成美站、云·企業(yè)官網(wǎng))的OpenAPI采用RESTful接口請求方式,請求方法詳見api右側(cè)。在使用API前,您需要登錄到您的產(chǎn)品后臺-網(wǎng)站管理-AccessKey管理,新建AccessKey后直接調(diào)用API,或復(fù)制到云夢API開放平臺(https://open-api.clouddream.net/),粘貼所復(fù)制的站點域名、AccessId、AccessKey,即可鑒權(quán)通過訪問API。
接入指南
“云夢智能開放API”通過API接口對外開放數(shù)據(jù)傳輸,使得第三方開發(fā)者可以方便地將其集成到自己的應(yīng)用程序或系統(tǒng)中,提高數(shù)據(jù)共享效率。以下為對接微信公眾號應(yīng)用場景示例。
一. 接入準(zhǔn)備
獲取網(wǎng)站的AK/SK
登錄到您的產(chǎn)品后臺,選擇網(wǎng)站管理 > AccessKey管理。
進(jìn)入AccessKey管理,點擊新建AccessKey,點擊調(diào)用API圖標(biāo),進(jìn)入云夢API開放平臺,自動粘貼所復(fù)制的站點域名、AccessId、AccessKey,即可通過鑒權(quán)訪問API。
獲取微信公眾號的身份認(rèn)證
獲取微信AppID和AppSecret
AppID和AppSecret可在微信公眾平臺 > 開發(fā) > 基本配置頁中獲得(需要已經(jīng)成為開發(fā)者,且賬號沒有異常狀態(tài))。
調(diào)用接口時,請登錄微信公眾平臺 > 開發(fā) > 基本配置提前將服務(wù)器IP地址添加到IP白名單中,點擊查看設(shè)置方法,否則將無法調(diào)用成功。
獲取 Access token
access_token是公眾號的全局唯一接口調(diào)用憑據(jù),公眾號調(diào)用各接口時都需使用access_token。
使用AppID和AppSecret調(diào)用本接口來獲取access_token。
二. 調(diào)用說明
導(dǎo)入微站圖片到微信永久圖片素材
微站圖片可以直接同步到微信公眾號,方便快捷管理圖文消息,并且圖片永久使用。新增的永久素材也可以在公眾平臺官網(wǎng)素材管理模塊中查詢管理。
使用方法:
具體調(diào)用步驟可參見下方提供的demo示例。
使用微信access_token訪問新增永久素材接口,可查看接口使用方法
導(dǎo)入微站文章到微信并發(fā)布
微站文章也可以直接同步到微信公眾號,直接在公眾號管理圖文消息。還支持正文中插入自己賬號和其他公眾號已群發(fā)文章鏈接的能力。
使用方法:
新增文章到微信草稿
具體調(diào)用步驟可參見下方提供的demo示例。
使用微信access_token訪問新增草稿接口,可查看接口使用方法
發(fā)布微信草稿
開發(fā)者需要先將圖文素材以草稿的形式保存(見草稿箱 > 新建草稿,如需從已保存的草稿中選擇,見草稿箱 > 獲取草稿列表),選擇要發(fā)布的草稿 media_id 進(jìn)行發(fā)布。查看發(fā)布接口使用方法
三. Demo摘要
完整示例見下方github鏈接。
using ApiCallerDemo.Logic; using ApiCallerDemo.Models.WeChat; namespace ApiCallerDemo { internal class Program { private static void InitArg(ref string arg, string argName) { while (string.IsNullOrWhiteSpace(arg)) { Console.WriteLine($"請輸入{argName},按回車確認(rèn)"); arg = Console.ReadLine() ?? string.Empty; } } static async Task Main(string[] args) { var weZhanAccessId = ""; var weZhanAccessKey = ""; var weZhanDomain = ""; var weChatAppId = ""; var weChatSecret = ""; #region 檢查參數(shù)是否有填寫,如果沒有填寫則提示輸入?yún)?shù) InitArg(ref weZhanAccessId, $"微站AccessId(如:{Guid.NewGuid():N})"); InitArg(ref weZhanAccessKey, $"微站AccessKey(如:{Guid.NewGuid()})"); InitArg(ref weZhanDomain, "微站域名(如:https://1234abcd.scd.wezhan.cn)"); InitArg(ref weChatAppId, "微信AppId(如:wxda4bxxxxxxxxxxxx)"); InitArg(ref weChatSecret, "微信Secret(如:d3ff739088698daxxxxxxxxxxxxxxxxx)"); #endregion //初始化一個微站Api調(diào)用實例 var weZhanApiCaller = new WeZhanApiCaller(weZhanAccessId, weZhanAccessKey, weZhanDomain); //初始化一個臨時的微信accessToken var accessToken = await WeChatApiCaller.InitTokenAsync(weChatAppId, weChatSecret); //初始化一個微信Api調(diào)用實例 var weChatApiCaller = new WeChatApiCaller(accessToken); //獲取一批微站文章ID,并且遍歷 foreach (var articleId in await weZhanApiCaller.GetArticleIdListAsync(1, 10)) { try { //獲取文章詳情 var article = await weZhanApiCaller.GetArticleDetailAsync(articleId); //下載文章主圖,如果沒有主圖,則無法發(fā)布為微信文章草稿,因為微信需要草稿有一張主圖 var imgBytes = await weZhanApiCaller.DownloadImgAsync(article.PictureUrl); //上傳主圖,并且獲取素材ID var mediaId = await weChatApiCaller.UploadImage2WeChatAsync(imgBytes); //根據(jù)文章內(nèi)容、主圖素材ID,生成一篇文章草稿 var draftId = await weChatApiCaller.AddDraftAsync(new DraftRequest() { author = "小編", title = article.Title, digest = article.Summary, content = article.ContentDetail, thumb_media_id = mediaId, need_open_comment = 0, only_fans_can_comment = 0, }); //發(fā)布文章草稿,大功告成~ await weChatApiCaller.PublishDraftAsync(draftId); Console.WriteLine($"文章[{article.Title}]同步到微信成功"); } catch (Exception e) { Console.WriteLine($"文章Id[{articleId}]同步到微信失敗,{e.Message} {e.StackTrace}"); } } } } }
四. 示例代碼下載
我們提供了.NET版 API調(diào)用示例,開發(fā)者可下載使用。 下載地址:https://github.com/woxieao/WeZhanApiCallerDemo