前提・実現したいこと
Microsoft Graph SDKを用いて、自社テナントのShraepoint上のファイルを操作しようと考えています。
しかし、返却されるSiteオブジェクトのdriveがnullになってしまい、SharePoint上のファイルを操作できません。
該当のソースコード
String CLIENT_ID = "xxxxxx-xxxxx-xxxxx-xxxx-xxxx"; String CLIENT_SECRET ="xxxxxx-xxxxx-xxxxx-xxxx-xxxx"; String TENANT_GUID = "xxxxxx-xxxxx-xxxxx-xxxx-xxxx"; //アクセストークンの取得 List<String> SCOPES = new ArrayList<String>() { { add("https://graph.microsoft.com/.default"); } }; ClientSecretCredential clientSecretCredential = new ClientSecretCredentialBuilder() .clientId(CLIENT_ID) .clientSecret(CLIENT_SECRET) .tenantId(TENANT_GUID) .build(); final TokenCredentialAuthProvider tokenCredAuthProvider = new TokenCredentialAuthProvider(SCOPES, clientSecretCredential); final GraphServiceClient graphClient = GraphServiceClient .builder() .authenticationProvider(tokenCredAuthProvider) .buildClient(); //サイトの取得 LinkedList<Option> requestOptions = new LinkedList<>(); requestOptions.add(new QueryOption("search", "my-webpage")); SiteCollectionPage sites_itp = graphClient.sites() .buildRequest(requestOptions) .get(); //このsites_itp.pageContents[0]に目的のサイトは取得できるものの、driveがnullになる
これについて、なにか権限の不足は考えられるでしょうか?
また、プログラムにおかしい点などありますでしょうか?
また、SharePointサイト側の方でチェックすべき設定は考えられるでしょうか?
試したこと
- 権限の確認
AzureAD上のAPIに与えているアクセス許可は以下の通りです。
- Microsoft Graph
-- Files.Read.All
-- Files.ReadWrite.All
-- Sites.FullControl.All
-- Sites.Manage.All
-- User.Read.All
補足情報(FW/ツールのバージョンなど)
アプリはAzure認証サーバーを介してアクセストークンを取得し、そのアクセストークンを用いてSharePointへのアクセスを行っています。
認証にはクライアント-シークレットを用いています。
その他必要そうな情報がありましたら答えられる範囲で回答いたします。
あなたの回答
tips
プレビュー