渡された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);
}
}
}
}
親愛なる@kendoman、あなたは以前私の指導者でした。もう君に迷惑をかけてもらえますか? –
通知は、問題のユーザーがトピック自体の中でアクティブだった場合にのみ機能します。利用可能なトピックからユーザーにpingすることはできません。コードが失敗した場所を知るためにちょっとデバッグしてから、特定のエラーを返す必要があります。コードが3分の3で失敗した場合、それはうまくいくでしょう。 – Icepickle
@Icepickle、私私がそれをした後にあなたが言及したタグについて学んだ。謝罪いたします。しかし、私はそれを自分でデバッグしようと何時間も費やしました。ソースコード全体(空白のプロジェクトに貼り付けることができます)を提示し、私が受け取ったエラーメッセージの全文をあなたに渡し、発生した箇所を示しました。どれくらい私ができたかわからない。 –