是否向Microsoft Sharepoint API发出CURL请求? [英] curl request to Microsoft Sharepoint API?

查看:27
本文介绍了是否向Microsoft Sharepoint API发出CURL请求?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有没有简单的方法可以使用cURL请求睡觉接口来访问我的Sharepoint帐户上的文件?例如

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

我已经阅读了有关authentication and authorization for apps的所有文档,但在本例中,我没有可以注册的"应用程序"。我只需要在睡觉请求中使用某种APIkey。睡觉接口如何这样使用?

非常感谢您对此问题的见解。

推荐答案

创建bash脚本:

$ nano get_access_token.sh

将下一个内容粘贴到其中,将YourTenantclient_idclient_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链接
    • 生成客户端ID和**客户端密码**值
    • 填写标题应用域名重定向URI字段(我输入了图片上的localhost.com-它起作用了)
    • 单击创建按钮
  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
    • 客户端ID898c898f-89238-43d0-4b2d-7a64c26f386a插入到应用ID字段
    • 单击查找按钮
    • 将下一个代码粘贴到权限请求XML中(在我的示例中,我只需要Read访问,所以我将Right的值从FullControl更改为Read):

      <AppPermissionRequests AllowAppOnlyPolicy="true">
      <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web" Right="FullControl" />
      
    • 创建底部按钮点击
    • 信任按钮单击

Here's Postman related but similar answer

这篇关于是否向Microsoft Sharepoint API发出CURL请求?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆