通用接口

更新时间:

网站开放API接口说明页面。

说明

通用接口云梦API开放平台是基于云梦建站技术实践经验,面向云梦建站用户及合作伙伴,提供高易用的API服务。目前适用于“云·速成美站”、“云·企业官网”内的文章、产品的增、删、改、查操作,旨在帮助用户加速创建网站的文章、产品。

本产品(云·速成美站、云·企业官网)的OpenAPI采用RESTful接口请求方式,请求方法详见api右侧。在使用API前,您需要登录到您的产品后台-网站管理-AccessKey管理,新建AccessKey后直接调用API,或复制到云梦API开放平台(https://open-api.clouddream.net/),粘贴所复制的站点域名、AccessId、AccessKey,即可鉴权通过访问API。

接入指南

“云梦智能开放API”通过API接口对外开放数据传输,使得第三方开发者可以方便地将其集成到自己的应用程序或系统中,提高数据共享效率。以下为对接微信公众号应用场景示例。

一. 接入准备

  1. 获取网站的AK/SK

    登录到您的产品后台,选择网站管理 > AccessKey管理image

    进入AccessKey管理,点击新建AccessKey,点击调用API图标,进入云梦API开放平台,自动粘贴所复制的站点域名、AccessId、AccessKey,即可通过鉴权访问API。image

  2. 获取微信公众号的身份认证

    获取微信AppID和AppSecret

    AppID和AppSecret可在微信公众平台 > 开发 > 基本配置页中获得(需要已经成为开发者,且账号没有异常状态)。

    调用接口时,请登录微信公众平台 > 开发 > 基本配置提前将服务器IP地址添加到IP白名单中,点击查看设置方法,否则将无法调用成功。

    获取 Access token

    access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token。

    使用AppID和AppSecret调用本接口来获取access_token。

    查看公众平台的API调用所需的access_token的使用及生成方式说明image

二. 调用说明

  1. 导入微站图片到微信永久图片素材

    微站图片可以直接同步到微信公众号,方便快捷管理图文消息,并且图片永久使用。新增的永久素材也可以在公众平台官网素材管理模块中查询管理。

    使用方法:

    具体调用步骤可参见下方提供的demo示例。

    使用微信access_token访问新增永久素材接口,可查看接口使用方法

    image

  2. 导入微站文章到微信并发布

    微站文章也可以直接同步到微信公众号,直接在公众号管理图文消息。还支持正文中插入自己账号和其他公众号已群发文章链接的能力。

    使用方法:

    1. 新增文章到微信草稿

      具体调用步骤可参见下方提供的demo示例。

      使用微信access_token访问新增草稿接口,可查看接口使用方法

      image

    2. 发布微信草稿

      开发者需要先将图文素材以草稿的形式保存(见草稿箱 > 新建草稿,如需从已保存的草稿中选择,见草稿箱 > 获取草稿列表),选择要发布的草稿 media_id 进行发布。查看发布接口使用方法

      image

三. 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},按回车确认");
                    arg = Console.ReadLine() ?? string.Empty;
                }
            }
    
            static async Task Main(string[] args)
            {
    
                var weZhanAccessId = "";
                var weZhanAccessKey = "";
                var weZhanDomain = "";
                var weChatAppId = "";
                var weChatSecret = "";
                #region 检查参数是否有填写,如果没有填写则提示输入参数
                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调用实例
                var weZhanApiCaller = new WeZhanApiCaller(weZhanAccessId, weZhanAccessKey, weZhanDomain);
                //初始化一个临时的微信accessToken
                var accessToken = await WeChatApiCaller.InitTokenAsync(weChatAppId, weChatSecret);
                //初始化一个微信Api调用实例
                var weChatApiCaller = new WeChatApiCaller(accessToken);
    
                //获取一批微站文章ID,并且遍历
                foreach (var articleId in await weZhanApiCaller.GetArticleIdListAsync(1, 10))
                {
                    try
                    {
                        //获取文章详情
                        var article = await weZhanApiCaller.GetArticleDetailAsync(articleId);
                        //下载文章主图,如果没有主图,则无法发布为微信文章草稿,因为微信需要草稿有一张主图
                        var imgBytes = await weZhanApiCaller.DownloadImgAsync(article.PictureUrl);
                        //上传主图,并且获取素材ID
                        var mediaId = await weChatApiCaller.UploadImage2WeChatAsync(imgBytes);
                        //根据文章内容、主图素材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,
                        });
    
                        //发布文章草稿,大功告成~
                        await weChatApiCaller.PublishDraftAsync(draftId);
                        Console.WriteLine($"文章[{article.Title}]同步到微信成功");
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine($"文章Id[{articleId}]同步到微信失败,{e.Message}
    {e.StackTrace}");
                    }
                }
    
            }
        }
    }

四. 示例代码下载

我们提供了.NET版 API调用示例,开发者可下载使用。 下载地址:https://github.com/woxieao/WeZhanApiCallerDemo