Ami*_*eki 3 python api azure microsoft-forms microsoft-graph-api
是否有解决方案可以通过 MS Graph API 从共享的在线 MS 表单收集响应?
我将 MS Graph API 用于其他目的,即访问 OneDrive 中的个人/共享文件。
我找不到直接的解决方案来访问在线表格。微软提出了一些请求,他们回应说该选项已积压。我想知道是否有替代解决方案可以通过 API 访问共享的在线 MS 表单?
不幸的是,没有图形 API可以执行相同的操作。
我能想到的有两种选择:
选项1 :
您可以使用 LogicAPP 或使用 Power Automate(以前称为 MS Flow)来维护自己的表单响应数据源
只要为表单记录了新的响应以及响应中已填写的数据,就会调用此触发器。
这样,您可以将此响应导出到存储在 OneDrive、Sharepoint、Azure 存储等中的 CSV 文件中(附加到现有响应)。这样您就可以在需要时通过 Graph API 使用此 CSV。
或将响应作为列表项添加到 Sharepoint Online 列表。您可以通过Graph API获取列表项。
https://learn.microsoft.com/en-us/graph/api/resources/listitem?view=graph-rest-1.0
选项 2:
注意:如果您在非 Web 应用程序中执行操作,则此方法可能适合。
既然你想通过Python来实现你的目标。我以为你可以使用 Selenium 作为 WebBrowser。
获取答案响应的 API 如下:
GET https://forms.office.com/formapi/api/<tenantid>/users/<userid>/light/forms('<formid>')/responses?$expand=comments&$top=7&$skip=0
Run Code Online (Sandbox Code Playgroud)
上述请求的响应示例:
这里的问题是,目前无法获取上述 API 的访问令牌。(据我研究过)
所以我所做的解决方法是使用 Selenium。
例如 - 使用 ChromeDriver 和 Selenium 库来自动化以下过程:
您可以参考这篇文章https://www.browserstack.com/guide/python-selenium-to-run-web-automation-test来了解我们如何使用 python-chrome 进行浏览器自动化。
第 1 步: 自动登录https://forms.office.com。此步骤将为会话创建必要的 cookie 来访问表单 api
第 2 步: 现在在同一会话中点击 api
GET https://forms.office.com/formapi/api/<tenantid>/users/<userid>/light/forms('<formid>')/responses?$expand=comments&$top=7&$skip=0
Run Code Online (Sandbox Code Playgroud)
随后可以对其进行评估和用于处理。
归档时间: |
|
查看次数: |
16783 次 |
最近记录: |