我搜索了整个互联网,试图找到一个可以为我指明正确方向的简单示例,但没有运气,所以我的问题来了:
我想登录到 Ubuntu One 并从我的网页同步(或几乎读取)文件,所有这些都是用 PHP 完成的。访问文件的需求都在该页面中描述:https : //one.ubuntu.com/developer/account_admin/issue_tokens/cloud/
我能够完成第一个请求:
$url = 'https://login.ubuntu.com/api/1.0/authentications?ws.op=authenticate&token_name=Ubuntu%20One%20@%20try1';
$data = curlPetition(array('URL'=>$url,'USERPWD'=>'user:pass'));
$ar = fopen('uOne','w');fwrite($ar,$data['responseBody']);fclose($ar);
$tokenA = json_decode($data['responseBody'],1);
Run Code Online (Sandbox Code Playgroud)
好的,curlPetition 只进行基本的 curl 请愿。请注意,您需要一个有效的用户:通过 ubuntu 一个帐户。我在 json 中使用 "consumer_secret" 、 "token" 、 "consumer_key" 、 "name" 、 "token_secret" 正确得到响应。甚至该条目也出现在 ubuntu 授予的应用程序中。
我已经安装了最新的 OAuth PCL php extensión 并且它运行良好。但是当我尝试:
$api_url = 'https://one.ubuntu.com/api/file_storage/v1/';
$conskey = $tokenA['consumer_key'];
$conssec = $tokenA['consumer_secret'];
$token = $tokenA['token'];
$secret = $tokenA['token_secret'];
$oauth = new OAuth($conskey,$conssec,OAUTH_SIG_METHOD_HMACSHA1,OAUTH_AUTH_TYPE_URI);
$oauth->enableDebug();
$oauth->enableSSLChecks();
$oauth->setToken($token,$secret);
$oauth->fetch($api_url.'~/Ubuntu%20One/');
print_r($oauth->getLastResponse());
Run Code Online (Sandbox Code Playgroud)
我转到“正在进行的 OpenID 事务”页面,您在进行手动 Web 登录时会通过该页面。我肯定做错了什么。我试图从https://one.ubuntu.com/developer/account_admin/issue_tokens/cloud/使用 …