2017-10-23 7 views
-1

渡されたBox.comフォルダ内のファイルの一覧を取得するWindowsアプリ(.Net、C#)を作成しようとしています。 JWT認可を使用する新しいBox Appは、SDK(Box.V2)を使用してAppユーザーを作成することです。私は、SDKのドキュメントのいくつかの例から次のコードを取りました。 CreateEnterpriseUserAsync()コールがエラーメッセージで失敗している:管理者アカウントには、アプリケーションユーザーを作成する権限がありません

BoxException:ベアラレルム=「サービス」、エラー=「insufficient_scope」、ましたerror_descriptionは=「要求は、アクセストークンにより提供されるよりも高い特権が必要です。」

私はアカウント管理者です。私はすべての権利を持つ必要があります。しかし、私はただ1つの座席を持つ開発者アカウントを使用しています。 。 。それが限界かどうかはわかりません。私はどんな助けにも感謝しています!

エラーが表示されているところで、サンプルの3/4下がります。アプリコンソールの「マネージャのユーザー」スコープをチェックしてから「アプリ」の下で、企業の管理コンソールでアプリを再承認した場合

namespace Trial5 
{ 
    class Program 
    { 
    static void Main(string[] args) 
    { 
     var t = Configure(); 
     t.Wait(); 
    } 

    private static async Task Configure() 
    { 
      // Open a stream to read the Box configuration file. 
      using (System.IO.FileStream fs = new FileStream($"./BoxConfig.json", FileMode.Open)) 
      { 

      //configure ----------------------------------------------------------------- 
      var boxConfig = BoxConfig.CreateFromJsonFile(fs); 
      var boxJWT = new BoxJWTAuth(boxConfig); 

      //authenticate ----------------------------------------------------------------- 
      var adminToken = boxJWT.AdminToken(); //valid for 60 minutes so should be cached and re-used 
      var adminClient = boxJWT.AdminClient(adminToken); 

      // Use the GetCurrentUserInformationAsync method to retrieve current user's information. 
      // Since this client uses the Service Account, this will return the Service Account's information. 
      var adminClientInfo = await adminClient.UsersManager.GetCurrentUserInformationAsync(); 
      //See the login 
      Console.WriteLine(adminClientInfo.Login); 

      //create app user ----------------------------------------------------------------- 
      //NOTE: you must set IsPlatformAccessOnly=true for an App User 
      var userRequest = new BoxUserRequest() { Name = "test appuser1", IsPlatformAccessOnly = true }; 
      var appUser = await adminClient.UsersManager.CreateEnterpriseUserAsync(userRequest); // <---------------ERROR HERE 

      //get a user client ----------------------------------------------------------------- 
      var userToken = boxJWT.UserToken(appUser.Id); //valid for 60 minutes so should be cached and re-used 
      var userClient = boxJWT.UserClient(userToken, appUser.Id); 

      //for example, look up the app user's details 
      var userClientInfo = await userClient.UsersManager.GetCurrentUserInformationAsync(); 

      //Get folder info 
      var items = await userClient.FoldersManager.GetFolderItemsAsync("0", 500); 

     } 
     } 
    } 
    } 
+0

親愛なる@kendoman、あなたは以前私の指導者でした。もう君に迷惑をかけてもらえますか? –

+0

通知は、問題のユーザーがトピック自体の中でアクティブだった場合にのみ機能します。利用可能なトピックからユーザーにpingすることはできません。コードが失敗した場所を知るためにちょっとデバッグしてから、特定のエラーを返す必要があります。コードが3分の3で失敗した場合、それはうまくいくでしょう。 – Icepickle

+0

@Icepickle、私私がそれをした後にあなたが言及したタグについて学んだ。謝罪いたします。しかし、私はそれを自分でデバッグしようと何時間も費やしました。ソースコード全体(空白のプロジェクトに貼り付けることができます)を提示し、私が受け取ったエラーメッセージの全文をあなたに渡し、発生した箇所を示しました。どれくらい私ができたかわからない。 –

答えて

0

、それが動作するはずです。

enter image description here

+0

ありがとう!私は再認証しようとは思わなかった。私はそれを試して、それがどのように行くのかを知らせます。本当に助けに感謝します。 (申し訳ありませんが、上記のあなたの名前のスペルミス!) –

関連する問題