下面是这个场景具体的实现步骤。
打开C4C配置的Activity List:
创建一个自定义Channel:
记下这个新建Channel的Type Code:905
基于上图的Channel 905创建一个新的Social Media Channel,ID为ZJERRYWC:
在我这个Github仓库下有个service文件夹,包含了三个JavaScript文件:
(1) createAccountInC4C.js:负责微信用户关注微信公众号之后, 调用C4C OData API创建individual customer.
(2) createSocialMediaProfile.js:调用API创建C4C Social Media Profile.
(3) bindSocialProfileWithIndividualCustomer.js: 负责将前两步创建的C4C数据绑定起来。
在第二步创建Social Media Profile时,调用C4C API传入的输入负载里,将ChannelCode硬编码成之前在C4C系统里新建的自定义Channel的Type Code:905
在createAccountInC4C.js的实现里,这三步按顺序实现在函数createAccount里:
在微信消息服务器的事件处理函数里,一旦接收到“关注”事件( 事件类型值:subscribe)时,调用createAccount函数,完成上述三个步骤:
微信用户关注了公众号之后,发送文本消息给该公众号,微信消息服务器调用createSocialMediaActivity.js里的函数createSocialMessage, 在C4C系统里创建一条新的Social Media Message.
在unittest文件夹下有一个单元测试用例,展示了该函数的用法。
五个输入参数:
(1) o0KlM1i2_4-zHRm-IWGRlA1Cjc:发送消息给微信公众号的微信用户ID
(2) 1003: 待创建的Social Media Message ID,传一个非空值即可,因为C4C系统会根据自己的Number Range生成该ID,并返回给API调用者。
(3) 6066: 当前微信用户在C4C系统里对应的Social Media User Profile ID,该ID是在微信用户关注公众号时,在C4C系统生成并返回的。
(4) ZJERRYWC: 之前已经介绍过,在C4C系统手动创建的自定义Channel ID.
(5) “Hello C4C Agent….”: 微信用户发送给微信公众号的文本信息。
使用函数createSocialMessage,在C4C系统创建以微信用户发送给微信公众号的文本信息作为内容的Social Media Message,创建成功后返回其ID给微信用户:59160.
根据ID 59160到C4C系统查询到该Social Media Message,检查其Message字段的值,同微信用户发送给微信公众号的文本信息完全一致。