自动登录skydrive api php

时间:2016-05-09 13:58:00

标签: onedrive

我想在SkyDrive api PHP中进行脱机身份验证,只想提供client_id,client_secret_key以及访问或刷新令牌,这可能是优选的,而不是在此基础上验证我。在成功离线登录后,在SkyDrive中创建一个文件夹(OneDrive )并在创建的文件夹中上传文件。

如何在不登录的情况下自动刷新访问令牌。

如果有人对此有所了解,请帮助我。

1 个答案:

答案 0 :(得分:2)

最后我明白了,

请使用以下来源,它对我有用 https://github.com/lovattj/php-skydrive

在下面的文件中非常有用 https://github.com/lovattj/php-skydrive/blob/master/src/functions.inc.php

我改变了卷曲功能,这对我有用

例如

我在下面替换了curl_get函数,它对我有用

protected function curl_get($uri, $json_decode_output="true", $expected_status_code="HTTP/1.1 200 OK") {                                    
                try{
                        $ch = curl_init();
                        curl_setopt($ch, CURLOPT_URL, $uri);
                        //curl_setopt($ch, CURLOPT_HEADER, true);    // we want headers
                        //curl_setopt($ch, CURLOPT_NOBODY, true); 
                        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
                        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                        curl_setopt($ch, CURLOPT_FAILONERROR, false);
                        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
                        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);                                               
                        $result = curl_exec($ch);                                                                                               
                        $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);                                                
                        curl_close($ch);
                }  catch (Exception $e){}
                if ($httpcode == "201" || $httpcode == "200") {
        return json_decode($result, true);
                } else {
                        return array('error' => 'HTTP status code not expected - got ', 'description' => $httpcode);
                }                  
                var_dump(json_decode($result));                                        
}