7

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

我有一个 microsoft dev clientID 和 clientSecret。

任何人都可以让我开始使用 OAuth 连接到 skyDrive 并使用 API 吗?

非常感谢!

4

1 回答 1

13

这实际上是一个相当广泛的问题。希望这里有一些可以帮助您入门的东西。

  1. 看看SkyDrives REST API
  2. 您可以使用PHP cURL来执行 GET 和 POST。
  3. 用于json_decode()创建接收数据的映射。
  4. 对于您发送的任何数据,在 PHP中创建地图json_encode()并使用.

试用 API

这是一个交互式 API,您可以现场试用以查看响应。


发出请求

示例 (取自其他 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

我还建议您查看curl_setopt()以更好地了解如何使用 cURL 执行您需要的不同类型的请求。(另外这个关于 SO 的答案对使用 cURL 的 POST 与 GET 有一些很好的解释。)


文件对象

  • 删除文件:

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

  • 上传文件:

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

  • 下载文件:

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

    • 文件资源将在源字段中包含从 SkyDrive 下载文件的 URL 。


文件夹对象

  • 检索文件列表:

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

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

  • 创建文件夹:

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

  • 删除文件夹:

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


OAuth 2.0

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

查看协议概述并考虑是否要自己实现某些东西,或者使用库。快速谷歌搜索给了我:

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

于 2012-06-12T23:09:37.667 回答