向 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 发出卷曲请求? 的相关文章

  • 如何将 REST API 与 FireMonkey 结合使用?

    我需要在 FireMonkey 中实现 REST API 来获取一些信息 但我不确定如何做到这一点 REST API使用OAuth2 我可以访问两个代码 Consumer Key和Consumer Secret 之后 我需要获得一个临时的
  • 在 C# 控制台应用程序中使用 HttpClient 使用 WEB API

    我使用 MySQL 数据库在 Visual Studio 2015 中创建了一个 Web API API 运行完美 所以我决定做一个控制台client http www c sharpcorner com article web api w
  • 在javascript中执行curl请求?

    是否可以用 jQuery 或 javascript 发送curl 请求 像这样的事情 curl H Authorization Bearer 6Q https api wit ai message v 20140826 q 因此 在 PHP
  • 无法添加 laravel/homestead 盒子。 “SSL 证书问题..”。视窗

    我已经在另外两台机器上安装了 laravel homestead 以前从未见过这个问题 我搜索了又搜索 实施了大量建议的修复方案 但没有任何效果对我有用 我已经安装了 virtual box 和 vagrant 但我陷入了第一个障碍 vag
  • 如何在 Codeigniter 中我自己的控制器中生成 API 密钥

    只是想提一下 我确实是 API 开发 概念 结构 最佳实践 方面的新手 我对它一点也不熟悉 所以如果您发现我正在使用 Phil 请原谅我可悲的愚蠢问题Sturgeon 的 REST API 服务器 Curl 库和 REST API 客户端这
  • 外部依赖错误的 HTTP 状态代码

    当服务器与外部 API 通信出现问题时 返回的正确 HTTP 状态代码是什么 假设客户端向我的服务器 A 发送有效请求 然后 A 查询服务器 B 的 API 以便执行某些操作 然而 B 的 API 当前抛出 500 错误或因某种原因无法访问
  • 在golang中获取TTFB(第一个字节的时间)值

    我正在尝试获取 TTFB 值和 Connect 值 c exec Command curl w Connect time connect TTFB time starttransfer Total time time total o dev
  • RESTful API,如果查询字符串不够长怎么办?

    我们有产品资源集合 products 我们希望过滤此集合以仅返回具有特定列表之一的成员class id的 例如 GET products classes 100 101 102 这应该返回具有列出的任何类的产品成员的集合 我们遇到的问题是
  • 当会话令牌无效时,我应该使用什么状态代码?

    创建 Web 服务 RESTful 时 当会话令牌无效时我应该使用什么状态代码 目前我公司的人给我发了一个404 未找到 但我认为这是不正确的 因为资源存在 也许我应该使用 401 Unauthorized 你怎么认为 您建议我在这种情况下
  • 在 Angular 中让多个调用等待同一个 Promise

    我在一个页面上有多个使用相同服务的控制器 为了举例 我们将服务称为 USER 第一次调用 USER getUser 时 它会发出 http 请求来获取有关用户的数据 调用完成后 它将数据存储在 USER data 中 如果再次调用 USER
  • 锚标记 href 中的 eval

    我想要实现的目标是在锚标记的 href 中使用 Eval 作为参数 锚点嵌套在转发器内 为什么我不能使用后面的代码来实现这一点 我尝试了一些事情但没有运气 a href http MyWebsite ActiveUsers ID Inser
  • FFmpeg 代码无法在用于缩略图提取的 http url 上工作

    我正在尝试从 sharepoint 2013 视频库中提取缩略图 我找到了一个可以使用 ffmpeg 提取的链接 这是链接 如何将视频的第一帧保存为图像 https stackoverflow com questions 3575311 h
  • Android REST API 连接

    我有点傻 对此感到抱歉 我编写了一个 API 它返回一些 JSON 我的目标是从 Android 应用程序使用此 API 我已经尝试过使用 AsyncTask 但失败了 我想像这样使用它 调用该类 告知 URL 和结果的类型 哪个json
  • 过滤条件的查询字符串与资源路径

    背景 我有2个资源 courses and professors A course具有以下属性 ID topic 学期号 年 部分 教授 id A professor具有以下属性 ID 学院 超级用户 名 姓 所以 你可以说一门课程有一位教
  • 如何使用 Kerberos 身份验证从 C# 客户端调用 Sharepoint Web 服务?

    我们开发了一个 Web 服务 它位于共享点站点的上下文中并运行 使用普通的 Windows 身份验证可以正常工作 我们现在有一个客户想要将其安装在启用 Kerberos 的共享点站点上 我们需要对 Web 服务 调用客户端 Windows
  • 在 CURL 中设置多部分/混合请求的部分内容类型

    我想在一个 http 请求中发送 json 请求和多个文件 我在用着multipart mixed要求那个 curl H Content Type multipart mixed F email protected cdn cgi l em
  • 在服务器内部调用 Web 服务

    我有一个网络服务 getEmployee 当传递 id 时 它会获取单个员工的员工详细信息 同一服务器上的另一个 Web 服务 getEmployeeList 当传递一个部门时 它会获取整个员工列表 这将获取部门的 ID 然后调用 getE
  • 如何为 cxf jax-rs 2.0 客户端注册 jackson json 提供程序?

    我有一个 JAX RS 客户端正在发出一个简单的 GET 请求 我使用 CXF 实现和 Spring 进行 DI 呼叫成功 我收到响应代码 200 但是在将响应读入 POJO 时出现错误 例外 2015 05 08 16 11 55 457
  • 该Web容器尚未启动@Glassfish 4.0.01 web

    所以 这就是我对我的服务进行 REST 调用后得到的结果 2014 04 25T01 06 52 393 0200 glassfish 4 0 WARNING javax enterprise web tid ThreadID 21 Thr
  • 如何修改 sharepoint 2013 列表列标题?

    我希望同一列在不同视图中仅使用一个列表显示不同标题 所以我在 view aspx 中附加了一个 jquery 脚本

随机推荐

  • 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