有没有一种简单的方法来使用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的部分:
-
通过以下方式注册新应用程序
- 下列的
https://YourTenant.sharepoint.com/_layouts/15/appregnew.aspx
link
- 生成客户端 ID和 ** 客户端秘密 ** 值
- filling Title, 应用程序域 and 重定向URI字段(我已输入 localhost.com 如图所示 - 它有效)
- clicking Create button
-
将以下参数保存到文件中:
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
-
通过以下方式向该应用程序应用权限
-
下列的https://YourTennant.sharepoint.com/sites/SharePointRND/_layouts/15/appinv.aspx
-
插入客户端 ID: 898c898f-89238-43d0-4b2d-7a64c26f386a
into App Id field
-
点击Lookup button
-
粘贴到权限请求 XML下一个代码(在我的例子中我只需要Read
访问,所以我改变了Right
s 值来自FullControl
to Read
):
<AppPermissionRequests AllowAppOnlyPolicy="true">
<AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web" Right="FullControl" />
</AppPermissionRequests>
-
Create bottom button clicking
![enter image description here](https://i.stack.imgur.com/H4z4a.png)
-
Trust it按钮点击
这是与邮递员相关但类似的答案 https://sharepoint.stackexchange.com/a/281249/88705
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)