使用 PHP 和 OAuth 访问 SkyDrive

2024-05-18

我想使用 PHP 访问 skyDrive。 我想检索文件和文件夹列表,下载、上传和删除文件。

我有一个 microsoft dev clientID 和 clientSecret。

有人可以帮助我开始使用 OAuth 连接到 skyDrive 并使用 API 吗?

多谢!


这实际上是一个相当广泛的问题。希望以下内容可以帮助您入门。

  1. 看一下SkyDrives REST API http://msdn.microsoft.com/en-us/library/live/hh243648.aspx.
  2. 你可以使用PHP cURL http://php.net/manual/en/book.curl.php执行 GET 和 POST。
  3. Use json_decode() http://php.net/manual/en/function.json-decode.php创建接收到的数据的地图。
  4. 对于您发送的任何数据,创建maps http://php.net/manual/en/language.types.array.php在 PHP 中并将它们转换为 JSON 使用json_encode() http://php.net/manual/en/function.json-encode.php.

尝试 API

这是一个交互式 API,您可以实时尝试以查看响应。 https://apigee.com/OneDrive/embed/console/OneDrive


发出请求

Example https://stackoverflow.com/a/10534144/1210983 (摘自其他SO答案):

$url = 'POST https://apis.live.net/v5.0/me/skydrive/files';
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POSTFIELDS, array('access_token' => TOKEN, 'name' => 'file', 'filename' => "@HelloWorld.txt"));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);

请求类型:http://msdn.microsoft.com/en-us/library/live/hh243648.aspx#http_verbs http://msdn.microsoft.com/en-us/library/live/hh243648.aspx#http_verbs

我还推荐你看看curl_setopt() http://php.net/manual/en/function.curl-setopt.php为了更好地了解如何使用 cURL 执行您需要的不同类型的请求。(此外,这个答案对使用 cURL 的 POST 与 GET 有一些很好的解释。) https://stackoverflow.com/a/1225518/1210983


文件对象 http://msdn.microsoft.com/en-us/library/live/hh243648.aspx#file

  • 删除文件:

    要删除文件,请向 /FILE_ID 发出 DELETE 请求。

  • 上传文件:

    要创建新的文件资源,您可以向 /FOLDER_ID/files 发出 POST 请求、向目标文件夹的 /UPLOAD_LOCATION 发出 POST 请求,或者向 /FOLDER_ID/files/ 发出 PUT 请求。

  • 下载文件:

    要获取文件资源的属性,请向 /FILE_ID(目标文件 ID)发出 GET 请求。

    • 文件资源将包含从 SkyDrive 下载文件的 URLsource field.

文件夹对象 http://msdn.microsoft.com/en-us/library/live/hh243648.aspx#folder

  • 检索文件列表:

    要使用 Live Connect REST API 获取根文件夹资源,请向 /me/skydrive 或 /USER_ID/skydrive 发出 GET 请求。

    要获取子文件夹资源,请向 /FOLDER_ID 发出 GET 请求。

  • 创建文件夹:

    要创建新的文件夹资源,请向 /FOLDER_ID 发出 POST 请求。在请求正文中传递名称和描述属性

  • 删除文件夹:

    要删除文件夹,请向 /FOLDER_ID 发出 DELETE 请求。


OAuth 2.0 http://msdn.microsoft.com/en-us/library/live/hh243647.aspx

不幸的是,我对 OAuth 的经验有限。我只能提供一些相关的链接和建议,希望能有所帮助。

查看协议概述 http://msdn.microsoft.com/en-us/library/live/hh243647.aspx并考虑您是否想自己实现一些东西,或者使用库。快速谷歌搜索给了我:

  • http://code.google.com/p/google-api-php-client/wiki/OAuth2 http://code.google.com/p/google-api-php-client/wiki/OAuth2
  • http://code.google.com/p/oauth2-php/ http://code.google.com/p/oauth2-php/
  • http://php.net/manual/en/book.oauth.php http://php.net/manual/en/book.oauth.php

其他一些可能有用的链接和指南:

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

使用 PHP 和 OAuth 访问 SkyDrive 的相关文章

随机推荐

  • IIF(...) 不是公认的内置函数

    我正在尝试在 Microsoft SQL Server 2008 R2 中使用它 SET SomeVar SomeOtherVar IIF SomeBool value when true value when false 但我收到一个错误
  • 在 IntelliJ 中运行 Spring Boot 会导致 Unable to load 'javax.el.E​​xpressionFactory'

    我正在尝试运行一个简单的 Spring Boot 应用程序 该应用程序具有以下 Maven pom file
  • 访问私人成员[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 通过将类的私有成员转换为 void 指针 然后转换为结构来访问类的私有成员是否合适 我认为我无权修改包含我需要访问的数据成员的类 如果不道德 我
  • 填充 CoreData 创建的 sqlite 数据库

    我有一个由 CoreData 模型自动创建的 sqlite DB 但我的应用程序不会让用户能够将数据写入其中 而是我想用程序所需的所有数据预先填充它 我的问题是 CoreData 创建的 sqlite DB 具有未知的表和字段 这些表和字段
  • 如何在 React Native 上显示 SVG 文件?

    我想显示 svg 文件 我有一堆 svg 图像 但我找不到显示的方式 我尝试使用Image and Use的组成部分反应本机 svg https github com magicismight react native svg但他们不这样做
  • F# 命名约定

    F 是否有 官方 命名 大小写约定 我总是怀疑是否使用 C 风格 Class MyFunctionName or Module my function name 在 F 中 您应该混合 BCL 类和 F 库类 它们具有不同的大小写 并且代码
  • iphone:如何停止快门动画?

    我有两个问题 1 我想知道如何在相机加载时停止快门动画 我正在使用 UIImagePickerController 我已经参考了堆栈溢出的许多答案 但没有成功 2 我在相机中有一个自定义按钮 使用cameraOverlayView并想通过单
  • 是否可以强制 XMLWriter 将元素写入单引号中?

    这是我的代码 var ptFirstName tboxFirstName Text writer WriteAttributeString first ptFirstName 请注意 即使我使用 ptFirstName 也会以双引号结束 p
  • Spring MockMVC、Spring 安全和 Mockito

    我想测试一个Spring Boot休息控制器 使用Spring security 并在其中使用模拟 我尝试过使用 Mockito 但我认为任何模拟工具都应该可以解决问题 为了在我的测试中启用 Spring 安全性 我首先执行以下操作 Run
  • n 或 nlog(n) 比常数时间或对数时间更好吗?

    在 Coursera 上的普林斯顿教程中 讲师解释了遇到的常见增长顺序函数 他说 线性和线性算术运行时间是 我们努力的目标 他的推理是 随着输入大小的增加 运行时间也会增加 我认为这是他犯了错误的地方 因为我之前听过他提到线性增长顺序对于高
  • Jenkins 的代码覆盖率 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Alexa - 包罗万象

    我有一个插入后端和 DialogFlow ApiAI 的聊天机器人 我正在尝试在 Alexa 中设置一项技能 以便我可以捕获与我的技能相关的所有内容 然后将其转发到我的后端 以便我可以使用现有的基础设施和 convo 设计 我一直在努力与
  • C# 和 Javascript SHA256 哈希的代码示例

    我有一个在服务器端运行的 C 算法 它对 Base64 编码的字符串进行哈希处理 byte salt Convert FromBase64String serverSalt Step 1 SHA256Managed sha256 new S
  • ASP.NET Core Serilog 未将属性推送到其自定义列

    我有这个设置appsettings json对于我的 Serilog 安装 Serilog MinimumLevel Information Enrich LogUserName Override Microsoft Critical Wr
  • AWS RDS MySql - 如何在设置“公开可用”后允许访问

    刚刚使用默认设置和用户 密码创建了新的 AWS RDS MySql 实例 我也将其设置为publicly available并在此过程中创建新的 VPC 目前无法从我的笔记本电脑连接到此 RDS mysql h endpoint u myu
  • 检查对以下内容的理解:“变量”与“变量” “价值”、“功能”与“抽象”

    这个问题是后续问题this one https stackoverflow com questions 25327705 is function a sort of variable 25329157 25329157在学习 Haskell
  • 如何将 Observable>> 转换为 Observable>

    我陷入了如何将以下可观察类型转换 转换为我的目标类型的困境 我有以下类型的可观察值 Observable
  • 发生错误。请参阅日志文件 - eclipse juno

    每当我启动 Eclipse Juno 时 都会出现错误 发生错误 请查看日志文件 C Program Files eclipse configuration 1362989254411 log 有的网站说卸载jdk重新安装 我这样做了 但没
  • 我想在java中使用XQuery进行Xml处理

    我想用XQuery用于从 java 中的 Xml 获取数据 但我没有得到需要为此添加哪个 Jar 我在谷歌上搜索了很多 但没有得到任何有用的例子 例如我得到以下链接 https docs oracle com database 121 AD
  • 使用 PHP 和 OAuth 访问 SkyDrive

    我想使用 PHP 访问 skyDrive 我想检索文件和文件夹列表 下载 上传和删除文件 我有一个 microsoft dev clientID 和 clientSecret 有人可以帮助我开始使用 OAuth 连接到 skyDrive 并