发送不同类型的ActivityFeed
上一篇文章讲到了如何使用最新的Graph API来给一个用户发送一个简单的 Activity Feed。我们这篇文章来详细讲一下发送三种不同类型的消息。
发送 Chat 相关的 Activity Notification
API 为 POST https://graph.microsoft.com/beta/chats/{chat-id}/sendActivityNotification
http请求的内容为:
{"topic": {"source": "entityUrl","value": "https://graph.microsoft.com/beta/chats/{chat-id}"},"activityType": "taskCreated","previewText": {"content": "New Task Created"},"recipient": {"@odata.type": "microsoft.graph.aadUserNotificationRecipient","userId": "569363e2-1111-2222-3333-16f245c5d66a"},"templateParameters": [{"name": "taskId","value": "Task 12322"}]
}
其中 activityType
和 templateParameters
我已经在前面一篇文章中介绍过,previewText
从名字上也很容易理解,是推送的消息的文本内容,recipient
是接受推送消息的用户的 id 信息。
这里比较关键的是 topic
,这个指明了这个推送的消息是针对哪个聊天 (chat) 或者哪个 聊天消息 (chatMessage) 的,如果是针对 chat 的,那么 topic
里的 value
就是 https://graph.microsoft.com/beta/chats/{chat-id}
这种格式,如果是 chatMessage,格式就是 https://graph.microsoft.com/beta/chats/{chat-id}/messages/{message-id}
大家可能会问,如何获得这个 chat id 和 message id 呢,这两个可以在发送 message 是返回,或者也可以通过调用 graph api 来获取。
发送 Team 相关的 Activity Notification
API 为 POST https://graph.microsoft.com/beta/teams/{teamId}/sendActivityNotification
http请求的内容和之前的很像:
{"topic": {"source": "entityUrl","value": "https://graph.microsoft.com/beta/teams/{team-id}"},"activityType": "pendingFinanceApprovalRequests","previewText": {"content": "Internal spending team has a pending finance approval requests"},"recipient": {"@odata.type": "microsoft.graph.aadUserNotificationRecipient","userId": "569363e2-1111-2222-3333-16f245c5d66a"},"templateParameters": [{"name": "pendingRequestCount","value": "5"}]
}
它支持的 entity url 有好几种:
- team,格式为
https://graph.microsoft.com/beta/teams/{team-id}
- channel,格式为
https://graph.microsoft.com/beta/teams/{team-id}/channels/{channel-id}
- chatMesage,格式为
https://graph.microsoft.com/beta/teams/{team-id}/channels/{channel-id}/messages/{message-id}
- teamsTab,格式为
https://graph.microsoft.com/beta/teams/{team-id}/channels/{channel-id}/tabs/{tab-id}
发送 User 相关的 Activity Notification
API 为 POST https://graph.microsoft.com/beta/users/{userId}/teamwork/sendActivityNotification
http请求的内容和之前的很像:
{"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"}]
}
它支持的 entity url 有两种:
- teamsAppInstallation,格式为
https://graph.microsoft.com/beta/users/{user-id}/teamwork/installedApps/{installation-id}
- teamsCatalogApp,格式为
https://graph.microsoft.com/beta/appCatalogs/teamsApps/{app-id}
发送不同类型的ActivityFeed相关推荐
- Android 手机卫士--解析json与消息机制发送不同类型消息
本文地址:http://www.cnblogs.com/wuyudong/p/5900800.html,转载请注明源地址. 1.解析json数据 解析json的代码很简单 JSONObject jso ...
- PHP header发送各种类型文件及设置文件下载名
2019独角兽企业重金招聘Python工程师标准>>> PHP header发送各种类型文件及设置文件下载名 <?php header('Content-type: appli ...
- 模拟登录,发送amf类型数据
模拟登录,发送amf类型数据 参考 http://blog.csdn.net/amandag/article/details/5666219 以及 稍微修改了一下AMFPost的类 一.登录 登录过 ...
- Python 技术篇-用smtplib和email库实现邮件发送各种类型的附件实例演示
qq 账号发送邮箱登陆密码需要用授权码. 可以看我的这个文章: Python 技术篇-qq邮箱授权码开通 实现原理 我们用图片和文档两种类型的附件举个例子. MIMEBase("," ...
- PHP header发送各种类型文件下载
<?php header('Content-type: application/image/pjpeg');//输出的类型 header('Content-Disposition: attach ...
- 【需特殊处理】如何使用request.post(Python)直接发送数组类型的方式
关于api:如何使用request.post(Python)发送数组? "值错误:太多值无法解包" | 码农家园 """声明:由于data和json都 ...
- 014-Axios Ajax:前后端分离概述,发送json类型的参数,前后端分离开发:在线接口文档,前端工程化、Element、nginx
第一节 Ajax概述 1.概述 概念: Asynchronous JavaScript And XML,异步的JavaScript和XML. 作用: 数据交换:通过Ajax可以给服务器发送请求,并获取 ...
- C#中使用SendMessage进行进程通信,可发送字符串,结构体(不能发送类类型)。
发送时只能以结构体形式发送,类的话会提示"指定结构必须能直接复制到本机结构中,或是具有布局信息 "的错误提示 以下两种结构体示例都可以被发送 public struct A ...
- 从MySQL获取的数据无法在PHP输出_无法从PHP发送内容类型:text/xml header,同时从MYSQL获取数据...
我希望你能对我的问题有所了解.我需要一个AJAX/PHP/MYSQL应用程序来显示我正在写的页面上的帖子和内容. 我只是在吃了蘑菇之后才发现如何用PHP做一些简单的事情,但那是几年前的事了,现在我没有 ...
最新文章
- python 编程一日一练-爱上Python:一日精通Python编程
- vue中如何在地图中标点…
- Remove Duplicates from Sorted Array II leetcode java
- PHP多进程处理并行处理任务实例
- oracle manager 配置,Oracle Net Manager 基本配置
- Security+ 学习笔记39 安全网络设计
- 开心消消乐h5版游戏案例分享
- 为什么郭台铭才是夏普的最佳归宿?
- k8s+containerd+kata-containers 安装
- springboot前后端分离,邮箱/手机验证号激活和登录,手机注册和激活
- windows 进程监控 Procmon.exe
- switch条件语句与跳转语句(附分数分层案例)
- 不用PLC,怎么用组态王和step7编程软件结合实现新年晚会舞台灯光效果,简单好看怎么做?
- Java 数字转字符串并指定位数,位数不足,自动补零
- 猿创征文|『编程与创作』10款颜值颇高的宝藏工具
- android 播放3gp音频,说说 Android 中如何操作音频与视频文件
- 人脸识别翼闸使用规范_测温人脸识别闸机翼闸的常规维护保养
- 算法--猜字谜(哈希表优化)
- 制作ubuntu安装U盘,安装错误gfxboot.c32 not a com32r image
- 怎么把pdf转换为excel表格?有什么实用的转换工具?
热门文章
- 20 个 CSS 高级技巧汇总
- 程序员必定会爱上的10款软件
- 程序员的10大编程技巧
- python替换所有标点符号 正则_python 把标点符号替换为空
- matlab中select,[转载]MATLAB阈值获取函数ddencmp、thselect、wbmpen和w
- 螺旋图形Linux,Canvas 螺旋线几何图形绘制
- 鸿蒙系统支持980,鸿蒙手机上线时间 鸿蒙系统支持哪些手机2021最新汇总
- android 辅助功能_辅助功能简介
- 编写高质量可维护的代码:优雅命名
- Ubuntu18.04如何让桌面软件默认root权限运行?