向 Microsoft Sharepoint API 发出卷曲请求?

2023-12-25

有没有一种简单的方法来使用cURL http://curl.haxx.se/docs/httpscripting.html请求 REST API 访问我的 Sharepoint 帐户上的文件?例如

curl -i -H "Authorization: Bearer <some-key-here>" https://mysharepoint.com/_api/web/Lists

我已阅读有关的所有文档应用程序的身份验证和授权 https://msdn.microsoft.com/en-us/library/office/fp142384.aspx,但在这种情况下,我没有可以注册的“应用程序”。我只需要某种 API 密钥来在 REST 请求中使用。我怎样才能以这种方式使用 REST API?

我很感激对这个问题的任何见解。


创建一个 bash 脚本:

$ nano get_access_token.sh

将下一个内容粘贴到其中,更改YourTenant, client_id, client_secret符合您自己的价值观(您可以在下面的 Sharepoint 部分中找到)。

wwwauthenticate=$(curl -i -H "Authorization: Bearer" -s "https://YourTenant.sharepoint.com/_vti_bin/client.svc/" | grep -i "www-authenticate")
bearer_realm=$(echo $wwwauthenticate | awk -F"," '{print $1}' | awk -F"=" '{print $2}' | tr -d '"')
app_id=$(echo $wwwauthenticate | awk -F"," '{print $2}' | awk -F"=" '{print $2}'  | tr -d '"')

grant_type="grant_type=client_credentials"
cl_id="client_id=c2xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxx@$bearer_realm"
cl_secret="client_secret=3zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"
res="resource=$app_id/YourTenant.sharepoint.com@$bearer_realm"
url="https://accounts.accesscontrol.windows.net/$bearer_realm/tokens/OAuth/2"
content_type="Conent-Type: application/x-www-form-urlencoded"

access_token=$(curl -X POST -H $content_type --data-urlencode $grant_type --data-urlencode $cl_id --data-urlencode $cl_secret --data-urlencode $res -s $url | awk -F":" '{print $NF}' | tr -d '"}')

echo $access_token

应用适当的权限:chmod 700 get_access_token.sh

你可以使用curl与该令牌的下一个方式:

curl -i -H "Authorization: Bearer $(./get_access_token.sh)" -H "Accept: application/json;odata=verbose" -s "https://YourTenant.sharepoint.com/_api/web"

你可以替换./通过脚本的完整路径。

Sharepoint的部分:

  1. 通过以下方式注册新应用程序

    • 下列的https://YourTenant.sharepoint.com/_layouts/15/appregnew.aspx link
    • 生成客户端 ID和 ** 客户端秘密 ** 值
    • filling Title, 应用程序域 and 重定向URI字段(我已输入 localhost.com 如图所示 - 它有效)
    • clicking Create button enter image description here
  2. 将以下参数保存到文件中:

    The app identifier has been successfully created.
    Client Id:      898c898f-89238-43d0-4b2d-7a64c26f386a
    Client Secret:  4/T+21I1DSoAJdOX9DL1Ne4KssEaP7rqb11gdtskhXn=
    Title:          SomeTitle
    App Domain:     localhost.com
    Redirect URI:   https://localhost.com/default.aspx
    
  3. 通过以下方式向该应用程序应用权限

    • 下列的https://YourTennant.sharepoint.com/sites/SharePointRND/_layouts/15/appinv.aspx

    • 插入客户端 ID: 898c898f-89238-43d0-4b2d-7a64c26f386a into App Id field

    • 点击Lookup button

    • 粘贴到权限请求 XML下一个代码(在我的例子中我只需要Read访问,所以我改变了Rights 值来自FullControl to Read):

      <AppPermissionRequests AllowAppOnlyPolicy="true">
          <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web" Right="FullControl" />
      </AppPermissionRequests>
      
    • Create bottom button clicking enter image description here

    • Trust it按钮点击

这是与邮递员相关但类似的答案 https://sharepoint.stackexchange.com/a/281249/88705

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

向 Microsoft Sharepoint API 发出卷曲请求? 的相关文章

  • 无法卷曲 git 标签

    我想通过命令行卷曲 git 标签 curl O http someurl 但是当我尝试解压文件时它被破坏了 有谁知道问题是什么 You can curl来自 GitHub 等 git 存储库托管服务的 git 标签 因为它有专用压缩包服务
  • Rails RESTful 资源对包含分隔符的字段使用 to_param

    我希望我的 Rails 2 3 2 应用程序能够响应并生成 URL 如下所示 websites asd com websites asd com dns records new 在我的 config routes rb 中 我有 map r
  • 设置restAssured 以全局记录所有请求和响应

    我想为所有人启用日志记录RestAssured默认情况下响应和请求 这就是我所做的 RestAssured requestSpecification new RequestSpecBuilder setBaseUri api setCont
  • 对于生成 json 以外的内容类型的操作,Swagger UI 会导致 HTTP 406 不可接受的响应

    我有一个用 Jersey 发布并用 Swagger 记录的 REST API 我还有一个使用该 API 的 Swagger UI 安装 我的几乎所有操作都会生成 application json 并按预期工作 除了一个 GET 操作会生成
  • Sharepoint 列表转 PDF 报告

    我有一个 SharePoint 列表 我需要将其转换为文档 任何类型 并将其导出为 PDF 您对执行此操作的最佳方法有什么建议吗 我有 Crystal Reports 但不确定这是否是正确的用例 您可以使用对象模型或通过 Web 服务以编程
  • 拆分 MS Access 数据库并将后端存储在 Sharepoint 中?

    我有一个包含大量 VBA 代码的 MS Access 数据库 如果我创建 Access Web App 我将失去代码提供的功能 有没有什么方法可以将我的数据库表存储在 SharePoint 中 而不是列表中 并将它们链接到前端以保留在每个用
  • 使用curl测试Rails路由

    我有一个名为 users 的模型 我想使用 API 对其进行更新 我想做到这一点的方法是创建一个更新路由并插入执行更新的代码 我使用 RSpec 创建了一个测试 它似乎有效 但是 我想实际查看数据库中更改的数据 因此我尝试使用curl 来更
  • Woocommerce REST API 扩展订单响应

    我正在寻找一种扩展 wc api vX orders 响应的方法 我在结帐中添加了多个自定义字段 例如 关系编号 交货日期等 这些元数据保存在订单中 wp postmeta 表 但为什么他们不随 api 返回呢 通常 您可以使用以下代码扩展
  • System.Net.Http.MultipartFormDataContent 的“curl -F”参数等效吗?

    我正在尝试使用sonicAPI 文件 上传 API https www sonicapi com docs api file upload in C 我尝试将 curl 示例转换为 C HttpClient and MultipartFor
  • 在 PHP 中处理 PUT/DELETE 参数

    我正在做我的CodeIgniter 的 REST 客户端库 http github com philsturgeon codeigniter restclient我正在努力弄清楚如何在 PHP 中发送 PUT 和 DELETE 参数 在一些
  • 通过 PHPcurl 发布文件[重复]

    这个问题在这里已经有答案了 可能的重复 不使用表单将文件上传到服务器 https stackoverflow com questions 6036799 upload a file to server without using a for
  • 在 RESTful API 中使用干净的 URL

    干净的 URL 也称为 RESTful URL 是用户友好的 纯结构性的 并且不包含查询字符串 相反 它们仅包含资源的路径 即 http twitter com users show 用户名 json 关于服务器端功能的问题 我需要为每个目
  • 计算 REST API 的 ETag

    我们正在构建我们使用的 REST APIETag https en wikipedia org wiki HTTP ETag有两种用途 通过允许客户端避免重新加载资源来节省带宽 对我们来说并不重要 解决并发问题 丢失更新问题 从实际角度来看
  • 当远程(Http)文件更改时如何执行操作?

    我想创建一个脚本 用于检查 URL 并在远程文件的 Last Modified 标头更改时执行操作 下载 解压缩 我考虑过使用curl 获取标头 但随后我必须将其存储在每个文件的某个位置并执行日期比较 有没有人对使用 大部分 标准 UNIX
  • 如何获取发送的 PHP 卷曲请求的信息

    我正在尝试调试对 Web 服务 getToken 端点的curl 请求 我不能 100 确信 URL 和身份验证信息已正确写入curl 句柄 我正在尝试使用curl getinfo ch CURLINFO HEADER OUT 捕获发送的请
  • REST Content-Type:它应该基于扩展还是 Accept 标头?

    RESTful Web 服务返回的表示 html xml json 应该由 url 还是由 Accept HTTP 标头确定 两者都有效 引用自xml com http www xml com pub a 2004 08 11 rest h
  • 以 RESTful 方式重新排序项目

    我有一个包含以下数据的表 id position name 1 4 Fred 2 2 Wilma 3 1 Pebbles 4 5 Barney 5 3 Betty 这是一个用户可以重新排列的列表 因此是位置列 我的问题是 我怎样才能以一种平
  • cURL '格式错误的网址'

    This url 在浏览器中工作得很好 但 cURL 返回错误 3 格式错误的 url 关于解决方法有什么想法吗 EDIT 卷曲代码 function get web page url options array CURLOPT RETUR
  • 将 MathJax 脚本添加到 Office 365 Sharepoint 中的页面

    我正在尝试将 Mathjax 库添加到 SharePoint 库 以便我们可以使用 LaTex 语法来添加方程 我在网上搜索时看到了多种方法 但似乎没有一种方法可以与最新版本的 MathJax 和 Office 365 版本的 ShareP
  • 将新行 JSON 上传到 Elasticsearch 批量 API

    我正在尝试使用 Bulk API 将新行 JSON 上传到 Elasticsearch 我上传的批量 JSON 如下所示 每个 JSON 都占一个新行 ip x x x x seen true classification maliciou

随机推荐

  • Python——检查对象是否是某个模块中任何类的实例

    需要一种方法来检查对象是否是某个特定模块中任何类的实例 我知道我可以通过从该模块显式导入每个类并检查元组来做到这一点 from my module import ClassOne ClassTwo gt gt gt isinstance m
  • RabbitMQ 和 ActiveMQ 在同一台机器上运行

    出于测试目的 我需要在同一台 Windows 计算机上运行 ActiveMQ 和 RabbitMQ 我已经安装了两者 但无法一起运行它们 我需要停止一项服务才能运行另一项服务 这是我尝试启动运行 ActiveMQ 的 RabbitMQ 时遇
  • 在 Laravel 中迁移表时出现“SQLSTATE[HY000] [2002] No such file or directory”错误

    当我尝试使用 php artisan migrate 命令迁移 Laravel 5 中的表时 出现以下错误 SQLSTATE HY000 2002 中没有这样的文件或目录 vendor laravel framework src Illum
  • 使用代码进行 Entity Framework Core 1.0 代码优先迁移?

    在实体框架的早期版本中 可以使用 DbMigrator 类以编程方式控制代码优先迁移 例如 检查并应用可用迁移 该类是否仍然存在于某处或者是否有功能替代 我发现了一篇关于早期 RC 版本的帖子 其中指出了替代品 但 Core 1 0 中似乎
  • JPopupMenu 行为

    我在下面准备了一个小测试用例 我的问题是当我右键单击窗口时 JPopupMenu 显示 但如果我单击 JWindow 菜单之外的任何位置都不会消失 我必须单击窗口上的某个位置才能将其删除 这不是预期的行为 编辑 阅读 akf 的答案后 我切
  • 如何在Asp.Net Mvc中做Basecamp风格的账户?

    对于 Asp Net 软件即服务应用程序 我想要执行基于帐户的子域 例如 Basecamp 和其他 37Signals 产品 例如 acme myapp com 将加载该客户的帐户并仅提取他们的信息 这在 Ruby on Rails 中很容
  • 滚动到 Bootstrap 模式弹出窗口的顶部

    下面显示的是我的 HTML 代码 它是一个 Bootstrap 模式弹出窗口 我想做的是 如果用户单击 保存 按钮 我正在执行某种验证 如果验证失败 则会显示该消息 并且应自动向上滚动到模式弹出窗口的顶部 但它不向上滚动 下面我还指出了 J
  • 如何在运行时从 Assets 文件夹加载 JAR

    如何在运行时从 Android 应用程序的 asset 文件夹加载 jar 文件 从资产文件夹加载是我的要求 有什么办法可以做到这一点吗 请帮忙 我得到了答案 我在这里添加这个答案 因为这可能对其他一些搜索有帮助 有一些步骤可以实现这一点
  • 在 Finalizer 中处置 MemoryCache 会引发 AccessViolationException

    EDIT有关更多详细信息 请参阅问题底部的编辑注释 原问题 我有一个 CacheWrapper 类 它创建并保存 NET 的实例MemoryCache内部类 MemoryCache将自身挂钩到 AppDomain 事件中 因此除非显式处置
  • 使用 sbt- assembly 将供应商信息添加到 MANIFEST.MF

    我正在使用 sbt assembly 创建一个可运行的 jar 但我的应用程序崩溃了 因为 jai imageio 从 MANIFEST MF 文件加载供应商名称 如果我手动编辑 META INF MANIFEST MF 文件 Manife
  • 圆括号还是不圆括号?有什么不同?

    我最近看到这两件事 我有点困惑 var blah new MyClass Name hello and var blah new MyClass Name hello 有什么不同 为什么它们都有效 Update 这是否意味着如果我在构造函数
  • NotificationCompat.Builder 不起作用,Android 2.2.1

    我有下一个代码 NotificationCompat Builder mBuilder new NotificationCompat Builder this setSmallIcon R drawable ic launcher setC
  • 如何在标题文本上制作字段集图例样式的“背景线”?

    我正在尝试将标题文本设置为类似于您的样式默认图例文本 http www w3schools com tags tryit asp filename tryhtml fieldset出现在字段集中 也就是说 我想要一条类似删除线的行到达文本
  • 通过指针传递和通过引用传递[重复]

    这个问题在这里已经有答案了 可能的重复 C 中指针变量和引用变量有什么区别 https stackoverflow com questions 57483 what are the differences between pointer v
  • 如何在 WooCommerce 中获取具有自定义订单状态的立即付款 URL?

    我想获取客户可以直接支付发票费用的 URL 并且它应该与wc cancelled and wc transaction declined 自定义订单状态 我的解决方案我现在正在做的是使用我的自定义获取参数创建一个自定义页面 并将整个付款流程
  • CGAL:带有信息的点的凸包

    我在平面上有一个由 2D 点 N 个元素 组成的向量 我想制作这些点的凸包 之后 我想检索凸包中每个顶点的向量索引 我该怎么做 我知道 通过利用三角测量存在这种可能性vector
  • Linux串口的正确初始化顺序

    我编写了一个必须在 Linux 上使用串行端口的应用程序 尤其是 ttyUSB 端口 读取和写入操作是使用标准的 select read 循环和 write 执行的 它们可能没有任何问题 但初始化代码 或缺少某些部分 会损坏 tty 子系统
  • addEventListener 到除一个元素之外的所有元素

    我正在尝试让自己摆脱 jQuery 我的心在正确的地方 不是吗 并且我很难找到相当于 not 选择器 I have document body addEventListener mousewheel scrollTriggered 我想在除
  • 如何强制 Knit 在所有其他代码块之后评估 \Sexpr

    我正在尝试为动态文档编写摘要 但是我的 Sexpr 通话无法正常工作 本质上我想做的就是以一个摘要开始文档 该摘要具有从生成的 p 值 Sexpr value 其中值是在文档的 下游 确定的 例如 这有效 begin document lt
  • 向 Microsoft Sharepoint API 发出卷曲请求?

    有没有一种简单的方法来使用cURL http curl haxx se docs httpscripting html请求 REST API 访问我的 Sharepoint 帐户上的文件 例如 curl i H Authorization