功能描述
公众号可以为订阅的用户发送广播消息,也可以与订阅的用户进行单聊。
说明:
从 7.6.5011 版本开始支持。
公众号资料类介绍
属性 | 含义 | 说明 |
officialAccountID | 公众号 ID | |
officialAccountName | 公众号名称 | 最长150字节,使用 UTF-8 编码,1个汉字占3个字节 |
faceUrl | 公众号展示头像 | 最长500字节 |
organization | 组织名称 | 最长500字节,使用 UTF-8 编码,1个汉字占3个字节 |
introduction | 简介 | 最长400字节,使用 UTF-8 编码,1个汉字占3个字节 |
customData | 自定义数据 | 最长3000字节 |
createTime | 创建时间 | 单位:秒 |
subscriberCount | 订阅的人数 | 公众号目前的订阅者人数 |
subscribeTime | 登录用户订阅的时间 | 单位:秒 |
订阅公众号
示例代码如下:
V2TIMManager.getFriendshipManager().subscribeOfficialAccount("official_test", new V2TIMCallback() { @Override public void onSuccess() { // 订阅公众号成功 } @Override public void onError(int code, String desc) { // 订阅公众号失败 } });V2TIMManager.getFriendshipManager().addFriendListener(new V2TIMFriendshipListener() { @Override public void onOfficialAccountSubscribed(V2TIMOfficialAccountInfo officialAccountInfo) { // 订阅公众号通知 } @Override public void onOfficialAccountDeleted(String officialAccountID) {// 订阅的公众号被销毁通知 } @Override public void onOfficialAccountInfoChanged(V2TIMOfficialAccountInfo officialAccountInfo) {// 订阅的公众号资料更新通知 } });
[[V2TIMManager sharedInstance] subscribeOfficialAccount:@"official_test" succ:^ {NSLog(@"订阅公众号成功");} fail:^(int code, NSString *desc) {NSLog(@"订阅公众号失败, code: %d, msg: %@", code, msg);}];[[V2TIMManager sharedInstance] addFriendListener:self];- (void)onOfficialAccountSubscribed:(V2TIMOfficialAccountInfo *)officialAccountInfo {// 公众号订阅通知}- (void)onOfficialAccountDeleted:(NSString *)officialAccountID {// 订阅的公众号被销毁通知}- (void)onOfficialAccountInfoChanged:(V2TIMOfficialAccountInfo *)officialAccountInfo {// 订阅的公众号资料更新通知}
template <class T>class ValueCallback final : public V2TIMValueCallback<T> {public:using SuccessCallback = std::function<void(const T&)>;using ErrorCallback = std::function<void(int, const V2TIMString&)>;ValueCallback() = default;~ValueCallback() override = default;void SetCallback(SuccessCallback success_callback, ErrorCallback error_callback) {success_callback_ = std::move(success_callback);error_callback_ = std::move(error_callback);}void OnSuccess(const T& value) override {if (success_callback_) {success_callback_(value);}}void OnError(int error_code, const V2TIMString& error_message) override {if (error_callback_) {error_callback_(error_code, error_message);}}private:SuccessCallback success_callback_;ErrorCallback error_callback_;};auto callback = new Callback;callback->SetCallback([=]() {// 订阅公众号成功delete callback;},[=](int error_code, const V2TIMString& error_message) {// 订阅公众号失败delete callback;});V2TIMManager::GetInstance()->GetFriendshipManager()->SubscribeOfficialAccount( "official_test", callback);// 公众号通知class FriendshipListener final : public V2TIMFriendshipListener {public:FriendshipListener() = default;~FriendshipListener() override = default;void OnOfficialAccountSubscribed(const V2TIMOfficialAccountInfo &info) override {// 公众号订阅通知}void OnOfficialAccountDeleted(const V2TIMString &officialAccountID) override {// 订阅的公众号被销毁通知}void OnOfficialAccountInfoChanged(const V2TIMOfficialAccountInfo &info) override {// 订阅的公众号资料更新通知}};FriendshipListener friendshipListener;V2TIMManager::GetInstance()->AddFriendshipListener(&friendshipListener);
取消订阅公众号
示例代码如下:
V2TIMManager.getFriendshipManager().unsubscribeOfficialAccount("official_test", new V2TIMCallback() {@Overridepublic void onSuccess() {// 取消订阅公众号成功}@Overridepublic void onError(int code, String desc) {// 取消订阅公众号失败}});V2TIMManager.getFriendshipManager().addFriendListener(new V2TIMFriendshipListener() {@Overridepublic void onOfficialAccountUnsubscribed(String officialAccountID) {// 取消订阅公众号通知}});
[[V2TIMManager sharedInstance] unsubscribeOfficialAccount:@"official_test" succ:^ {NSLog(@"取消订阅公众号成功");} fail:^(int code, NSString *desc) {NSLog(@"取消订阅公众号失败, code: %d, msg: %@", code, msg);}];[[V2TIMManager sharedInstance] addFriendListener:self];- (void)onOfficialAccountUnsubscribed:(V2TIMOfficialAccountInfo *)officialAccountInfo {// 取消订阅公众号通知}
template <class T>class ValueCallback final : public V2TIMValueCallback<T> {public:using SuccessCallback = std::function<void(const T&)>;using ErrorCallback = std::function<void(int, const V2TIMString&)>;ValueCallback() = default;~ValueCallback() override = default;void SetCallback(SuccessCallback success_callback, ErrorCallback error_callback) {success_callback_ = std::move(success_callback);error_callback_ = std::move(error_callback);}void OnSuccess(const T& value) override {if (success_callback_) {success_callback_(value);}}void OnError(int error_code, const V2TIMString& error_message) override {if (error_callback_) {error_callback_(error_code, error_message);}}private:SuccessCallback success_callback_;ErrorCallback error_callback_;};auto callback = new Callback;callback->SetCallback([=]() {// 取消订阅公众号成功delete callback;},[=](int error_code, const V2TIMString& error_message) {// 取消订阅公众号失败delete callback;});V2TIMManager::GetInstance()->GetFriendshipManager()->UnsubscribeOfficialAccount("official_test", callback);// 公众号通知class FriendshipListener final : public V2TIMFriendshipListener {public:FriendshipListener() = default;~FriendshipListener() override = default;void OnOfficialAccountUnsubscribed(const V2TIMString &officialAccountID) override {// 取消订阅公众号通知}};FriendshipListener friendshipListener;V2TIMManager::GetInstance()->AddFriendshipListener(&friendshipListener);
获取公众号列表
当 officialAccountIDList 列表为空时,为获取订阅的公众号列表;
当 officialAccountIDList 填入指定的公众号 ID 时,为获取填入的公众号列表。
示例代码如下:
List<String> officialAccountIDList = new ArrayList<>();V2TIMManager.getFriendshipManager().getOfficialAccountsInfo(officialAccountIDList, new V2TIMValueCallback<List<V2TIMOfficialAccountInfoResult>>() {@Overridepublic void onSuccess(List<V2TIMOfficialAccountInfoResult> v2TIMOfficialAccountInfoResults) {// 获取订阅的公众号列表成功}@Overridepublic void onError(int code, String desc) {// 获取订阅的公众号列表失败}});
[[V2TIMManager sharedInstance] getOfficialAccountsInfo:nil succ:^(NSArray<V2TIMOfficialAccountInfoResult *> *resultList) {[self appendString:[NSString stringWithFormat:@"获取订阅的公众号列表完成:%@", resultList]];} fail:^(int code, NSString *desc) {[self appendString:[NSString stringWithFormat:@"获取订阅的公众号列表失败,code:%d msg:%@",code,desc]];}];
template <class T>class ValueCallback final : public V2TIMValueCallback<T> {public:using SuccessCallback = std::function<void(const T&)>;using ErrorCallback = std::function<void(int, const V2TIMString&)>;ValueCallback() = default;~ValueCallback() override = default;void SetCallback(SuccessCallback success_callback, ErrorCallback error_callback) {success_callback_ = std::move(success_callback);error_callback_ = std::move(error_callback);}void OnSuccess(const T& value) override {if (success_callback_) {success_callback_(value);}}void OnError(int error_code, const V2TIMString& error_message) override {if (error_callback_) {error_callback_(error_code, error_message);}}private:SuccessCallback success_callback_;ErrorCallback error_callback_;};V2TIMStringVector officialAccountIDList;auto callback = new ValueCallback<V2TIMTopicInfoResultVector>{};callback->SetCallback([=](const V2TIMOfficialAccountInfoResultVector& officialAccountInfoResultList) {// 获取订阅的公众号列表成功delete callback;},[=](int error_code, const V2TIMString& error_message) {// 获取订阅的公众号列表失败delete callback;});V2TIMManager::GetInstance()->GetFriendshipManager()->GetOfficialAccountsInfo(officialAccountIDList, callback);
公众号收发消息
公众号的消息分为:公众号给所有订阅者发送的广播消息和公众号与某一个订阅者之间的单聊消息。
公众号发送广播消息
公众号与订阅者互发单聊消息
接收消息