2012-04-03 12 views
2

JavaScriptを使用してSkyDriveで新しいファイルを作成しようとしています。SkyDriveでファイルを作成

私がこれまで持っていた最も近いものは、ファイルを作成することですが、コンテンツは一切ありません。

function upload() { 
      WL.api({ 
       path: "me/skydrive/files/testfile8.txt", 
       method: "PUT", 
       body: "Some file content" 
      }, function (response) {onError(response) }); 

       function onError(response) { 

       $("#status").html(response.error) 
       } 

     } 

誰もがSkyDriveの上に新しいファイルを作成し、ファイルの内容として文字列を渡す方法を知っています。

私も

$.ajax({     
       type : "PUT", 
       url: "https://apis.live.net/v5.0/me/skydrive/files/HelloWorld.txt?access_token=" + ACCESS_TOKEN, 
       data: "SOMEDATA",      
       processData: false,           
       success: function() { alert('Success!');}, 
       error: function(a,b,c) { alert('Error!' + a + b + c); } 
      });  

これは単なる内部サーバーエラーを返しアヤックス

を使用してみましたが、私はかなり無力:)

誰葉?

+0

アクセス権を取得するためにユーザーを認証するときは、使用したスコープは何ですか? – Prashant

答えて

0

古いスレッドに返信して申し訳ありません。

次のコードはどうですか?

'Hello、world!'という文字列を含む 'hello.txt'というファイルが作成されます。 SkyDriveフォルダに保存します。

var CLIENT_ID = '!!!!!!!!CLIENT ID!!!!!!!!'; 
var REDIRECT_URI = '!!!!!!!REDIRECT URI!!!!!!!'; 
var filename = 'hello.txt'; 
var content = 'Hello, world!'; 
var access_token = ''; 
WL.init({ 
    client_id: CLIENT_ID, 
    redirect_uri: REDIRECT_URI 
}).then(function (response) { 
    return WL.login({scope: ['wl.signin', 'wl.skydrive', 'wl.skydrive_update']}); 
}).then(function (response) { 
    access_token = response.session.access_token; 
    return WL.api({path: 'me/skydrive'}); 
}).then(function (response) { 
    var url = response.upload_location + filename + '?access_token=' + access_token; 
    var xhr = new XMLHttpRequest(); 
    xhr.open('PUT', url); 
    xhr.onload = function() { 
     alert('success:', xhr.responseText); 
    }; 
    xhr.onerror = function (error) { 
     alert('XHR error:', xhr.responseText); 
    }; 
    xhr.send(new Blob([content])); 
}, function (error) { 
    alert('error:', error); 
}); 

BTW、This threadもお手伝いできます。

関連する問題