使用PHP和OAuth访问SkyDrive

时间:2012-06-12 20:56:16

标签: php api oauth onedrive

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

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

有人能让我开始使用OAuth连接到skyDrive并使用API​​吗?

非常感谢!

1 个答案:

答案 0 :(得分:13)

这实际上是一个非常广泛的问题。希望有些东西可以帮助你开始。

  1. 查看SkyDrives REST API
  2. 您可以使用PHP cURL执行GET和POST。
  3. 使用json_decode()创建收到数据的地图。
  4. 对于您发送的任何数据,请在PHP中创建maps并使用json_encode()将其转换为JSON。

  5. 试用API

    Here is an interactive API you can try out live to see the responses.


    发出请求

    Example (取自其他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执行您需要的不同类型的请求。 (Also this answer on SO has some good explanation on POST vs GET using cURL.)


    File object

    • 删除文件:

        

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

    • 上传文件:

        

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

    • 下载文件:

        

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

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

    <小时/>

    Folder object

    • 检索文件列表:

        

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

           

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

    • 创建文件夹:

        

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

    • 删除文件夹:

        

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


    OAuth 2.0

    我很遗憾,我对OAuth的体验有限。我只能提供一些相关的链接和建议,希望对此有所帮助。

    Review the Protocol Overview并考虑您是想自己实现某些内容,还是使用库。快速谷歌搜索给了我:

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