0

ルート ディレクトリ内にあるフォルダの内容を表示する際に問題があります。Filesディレクトリにあるフォルダーを特定できましたが、それらのフォルダーの1つに同じことをしようとすると機能しません。

WL.api のパス名に問題があると考えています。しかし、私は間違っているかもしれません。

Live Connect 開発センターの skydrive ページのコード サンプルを使用しました。以下のサンプルでは、​​最初にフォルダーを特定しようとしましたが、最終的には特定のディレクトリに保存されているすべてのファイルの名前を取得したいと考えています。

 WL.api({ path: "me/skydrive/files/myfolder", method: "get" }).then(
  function (response) {
   var items = response.data;
   var outPuts = "";
   var number = items.length
    var tempos = new Array();
   var foundFolder = 0;
  for (var i = 0; i < items.length; i++) {
    if (items[i].type === "folder" || items[i].type === "album") {
    tempos[i] = items[i].name;
    foundFolder += 1;
  }
  }
     if (foundFolder == 0) {
        folderss.innerHTML = ("Unable to find any folders");
     }
    else {
      for (var i = 0; i < number; i++) {
        outPuts = outPuts + tempos[i] + "<br /> <br />"
       }
     folderss.innerHTML = outPuts;
    }
 }
 );

WLパスに「me/skydrive/files」のみを保持する場合。できます。しかし、私の場合「me/skydrive/files/myfolder」のように特定のフォルダー名を追加すると、呼び出しは何も返しません。または、「me/skydrive/files/folder.567391047.34282821!」のようなパスを宣言することもできます。

助けていただける方に感謝します。

4

1 に答える 1

2

あなたの問題は、無効なパス形式を使用していることが原因だと思います。docs の例によると、リスト ファイルへの有効なパスの形式は/OBJECT_ID/files です。OBJECT_ID はme/skydriveに置き換えて、 Skydriveルート フォルダーを参照できます。

注意すべき重要事項は次のとおりです。

  1. 1 つのオブジェクトへの参照 ( OBJECT_ID ) しか存在できません。
  2. この参照は、オブジェクトの ID (API によって返される) またはme/skydriveなどの特別なエイリアスのみにすることができます。
  3. /filesは常にパスの最後の部分にする必要があります (クエリ文字列を使用する必要がない場合)。

したがって、サブフォルダーfolder.567391047.34282821 の内容を一覧表示するには! /folder.567391047.34282821!/files またはfolder.567391047.34282821 !/files (任意のように見えるため、先頭のスラッシュなし)。

これで問題が解決するかどうかお知らせください。

于 2013-07-27T11:33:19.513 に答える