如何在Microsoft Teams个人应用中复用OOTB Praise原生功能?
在Microsoft Teams个人应用中复用原生Praise功能的可行方法
方法1:通过Teams深度链接(Deep Link)唤起原生Praise界面
这是最直接的实现方式,无需复杂开发,只需在个人应用中添加触发按钮,点击后调用Teams深度链接打开原生Praise功能。
- 深度链接格式:
https://teams.microsoft.com/l/entity/81fef3a6-72aa-4648-a763-de824aeafb7d/praise?context={"recipientUserId":"<目标用户ID>","teamId":"<团队ID>"} - 参数说明:
recipientUserId:可选,指定要表扬的用户ID,填写后打开界面会自动填充该用户;不填则打开通用表扬界面,由用户自主选择接收人。teamId:可选,若需在特定团队内发起表扬,填写对应团队ID;个人应用中无需关联团队时可省略。
- 集成方式:
在前端代码中使用Teams JS SDK的executeDeepLink方法调用该链接,实现应用内唤起:microsoftTeams.executeDeepLink('https://teams.microsoft.com/l/entity/81fef3a6-72aa-4648-a763-de824aeafb7d/praise?context={"recipientUserId":"12345678-1234-1234-1234-1234567890ab"}');
方法2:使用Microsoft Graph API自定义实现Praise功能
如果需要完全自定义界面和业务流程,可通过Graph API直接调用Praise相关接口,实现与原生功能一致的逻辑。
- 核心API操作:
- 创建表扬:
POST /teams/{team-id}/praises
请求体示例:{ "recipient": { "user": { "id": "<目标用户ID>" } }, "message": "感谢你在项目中的出色贡献!", "praiseTemplateId": "<表扬模板ID>" } - 获取表扬记录:
GET /teams/{team-id}/praises
- 创建表扬:
- 权限要求:
需要为应用申请TeamworkPraise.ReadWrite.All(应用权限)或TeamworkPraise.ReadWrite(委派权限),并完成用户授权流程。 - 优势:
可完全控制UI展示、数据处理逻辑,适配个人应用的专属场景。
方法3:通过Task Module嵌入原生Praise界面(可选)
若希望在个人应用的弹窗内展示原生Praise功能,可将深度链接嵌入Task Module:
microsoftTeams.tasks.startTask({ title: "发送表扬", url: "https://teams.microsoft.com/l/entity/81fef3a6-72aa-4648-a763-de824aeafb7d/praise?context={}", height: 500, width: 600 });
注意事项
- 深度链接方式无需额外权限,只要用户账号拥有Praise功能的访问权限即可使用。
- 使用Graph API时,需确保应用已在Azure AD中完成注册,并正确配置权限范围。
- 所有操作需在Teams客户端环境中运行,确保已正确初始化Teams JS SDK。
内容的提问来源于stack exchange,提问作者Sigar Dave
相关产品推荐
相关产品推荐

