使用PHP和OAuth访问SkyDrive

Bar*_*127 7 php api oauth onedrive

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

我有一个microsoft开发者clientID和clientSecret.

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

非常感谢!

oha*_*aal 13

这实际上是一个非常广泛的问题.希望有些东西会让你开始.

  1. 看看SkyDrives REST API.
  2. 您可以使用PHP cURL来执行GET和POST.
  3. 使用json_decode()创建地图接收到的数据的.
  4. 对于您发送的任何数据,使用PHP 创建地图并使用它们将其转换为JSON 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);
Run Code Online (Sandbox Code Playgroud)

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

我也建议你看看curl_setopt(),以便更好地了解如何做不同类型的,知道你们需要的请求,使用卷曲.(关于SO的这个答案对使用cURL的POST与GET有一些很好的解释.)


文件对象

  • 删除文件:

    要删除文件,请对/ FILE_ID发出DELETE请求.

  • 上传文件:

    要创建新的文件资源,您可以向/ FOLDER_ID /文件发出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的体验有限.我只能提供一些相关的链接和建议,希望对此有所帮助.

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

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