发送ActivityFeed的隐藏功能

60 篇文章 3 订阅
9 篇文章 0 订阅

前两篇文章介绍了如何发送 activity notification,这篇文章主要介绍两个隐藏功能,实际上所谓的隐藏功能是指大家在阅读官方文档是会忽略的两个点,但是实际上也是很实用的两个功能点。

text 类型的 topic

之前文章中提到我们的 activity notification 支持三种类型,他们分别的url是:

POST https://graph.microsoft.com/beta/chats/{chat-id}/sendActivityNotification
POST https://graph.microsoft.com/beta/teams/{teamId}/sendActivityNotification
POST https://graph.microsoft.com/beta/users/{userId}/teamwork/sendActivityNotification

他们的http request body基本类似:

{
    "topic": {
        "source": "entityUrl",
        "value": "https://graph.microsoft.com/beta/users/{user-id}/teamwork/installedApps/{installation-id}"
    },
    "activityType": "taskCreated",
    "previewText": {
        "content": "New Task Created"
    },
    "templateParameters": [
        {
            "name": "taskId",
            "value": "Task 342342"
        }
    ]
}

区别在于不同的类型,他们对应的topic里的value的格式不同。实际上 Teams 的 Graph API 还给我们提供了一种通用的 topic 类型:text,如下:

{
    "topic": {
        "source": "text",
        "value": "Deployment Approvals Channel",
        "webUrl": "https://teams.microsoft.com/l/message/19:448cfd2ac2a7490a9084a9ed14cttr78c@thread.skype/1605223780000?tenantId=c8b1bf45-3834-4ecf-971a-b4c755ee677d&groupId=d4c2a937-f097-435a-bc91-5c1683ca7245&parentMessageId=1605223771864&teamName=Approvals&channelName=Azure%20DevOps&createdTime=1605223780000"
    },
    ...
}

可以看到,在 source 字段指定 text,然后在 value 里填入你想要的任何文字内容,再加一个 webUrl 就可以了。需要注意的是,在这种模式下, webUrl 是必须的。

有了这种类型,实际上你就可以推送任何内容了,不再局限于 team 里的某个 resource。

Activity Notification的修改

在一个推送的请求里,实际上还有一个隐藏的属性 chainId

{
    "topic": { ... },
    "activityType": "...",
    "previewText": { ... },
    "templateParameters": [ ... ],
    "chainId": 3279238
}

chainId 是一个64位的整数,来唯一的指定你这次推送的id,如果你需要修改你之前推送的notification内容,可以再次调用 graph api,只要传入一样的 chainId 就可以了,就可以将之前的notificaiton更新。

也就是说如果你的 app 需要更新之前发的 notification 内容,那你在发推送的时候需要生成一个唯一的64位整数,并且保存下来,下次要更新的时候再查询到那个id,并用它再发送新的 notification 内容即可。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值