php - 无法使用 Teams Graph API php 发送 chatMessage
问题描述
在@CarlZhao 的帮助下,我终于对 OAuth 和 Graph 之间的区别有了一个很好的理解。我正在我的应用程序中构建功能,以便用户将消息发布到团队频道。到目前为止,我可以列出团队、频道和删除频道。我很难尝试发送chatMessage
. 我知道,因为根据我的理解,发送 chatMessage 是一个delegated permission
而不是一个,application permission
所以当用户使用我的应用程序进行身份验证时,我必须使用accessToken
从 OAuth 创建的。
我正在做的是将该令牌保存在我的数据库中,以便在尝试发送chatMessage
. 不确定这是否正确。所以在我的代码中,我正在创建一个新的 Graph 实例,但我使用的是用户的访问令牌而不是图形的令牌。
$useraccesstoken = "************************************";
// create a new OAuth graph from useraccesstoken
$graph_message = new Graph();
$graph_message->setAccessToken($useraccesstoken);
// post message
$data = [
'body' => [
'content' => 'This is a message from the API I made it works'
],
];
$message = $graph_message->createRequest("POST", "/teams/$group_id/channels/$channel_id/messages")
->addHeaders(array("Content-Type" => "application/json"))
->attachBody($data)
->setReturnType(Model\User::class)
->execute();
这不会产生任何错误,但没有任何反应,chatMessage
也没有发布。我已经仔细检查了,我的$group_id
和$channel_id
是正确的。
我使用$useraccesstoken
正确吗?我可以使用 启动一个新Graph()
实例$useraccesstoken
吗?
解决方案
推荐阅读
- reactjs - 未找到模块:“draft-js-export-html”
- jberet - Jberet - 可重试的异常类工作?
- php - “不完整的文件”错误在php中下载带有标题的文件
- javascript - How to inciude a local html file in a webview in nativescript main-page.js?
- python - 按升序对月份名称字符串列表进行排序
- oracle - 是否可以删除具有 Referenced_Owner/Referenced_Name 的无效对象?(dba_dependencies)
- python - 多处理不返回所有值
- mysql - How to extract values from MySQL query in Ansible play
- python - 如何围绕其最小值对数组进行切片
- javascript - 根据 Vue 中的数据变化切换对象(使用 Vuex)