0

Googleドライブサービスクライアントに接続しようとしていますが、この例外が発生しています。ここに私のコードです。Google.Apis.dllで 'System.ArgumentException'タイプの例外が発生しましたが、ユーザーコードで処理されませんでした

public static DriveService GetDriveClient() 
    { 
     var credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
       new ClientSecrets { ClientId = clientID, ClientSecret = clientSecret } 
       , scopes 
       , Environment.UserName 
       , CancellationToken.None 
       , new FileDataStore(credPath, true) 
      ).Result; 

     // Create Drive API service. 
     var service = new DriveService(new BaseClientService.Initializer() 
     { 
      HttpClientInitializer = credential, 
      ApplicationName = appName, 
     }); 

     return service; 
    } 

私は黄色の画面で、次のエラーを取得しています:

無効なアプリケーション名 パラメータ名:のApplicationName

+0

まず、内部例外について教えてください。あなたは内部の例外の内部に何を持っていますか? – Rajput

+0

Innerexception is null –

答えて

1

あなたはApplicationNameが無効である設定に使用しているappName値を。

ApplicationNameをHTTP User-Agentヘッダに直接使用されているので、RFC2616 page 17上にtoken仕様に準拠しなければなりません。

リリースv1.27.0の時点で、これはSystem.Net.Http.Headers.ProductInfoHeaderValue.TryParse()メソッドを使用して有効性を確認します。 BaseClientService.cs line 120

+0

ここに記載されている手順にちょうど従っています... https://developers.google.com/drive/v3/web/quickstart/dotnet これを簡単に解決する方法を教えてもらえますか? bczを発行してください。これは昨日までうまくいきましたか? –

+0

Kut-Paste-Doneにあるように、ApplicationNameはスペースやドットを含まないものに変更してください。最新のリリースv1.27.0では、検証がより厳しくなりました。ドキュメントが更新されているので、この例はうまく動作します。混乱させて申し訳ありません。 – Chris

+0

次の1-2時間で、v1.27.1をリリースします。これにより、ApplicationName検証が削除され、v1.26.0の動作をリリースするように復帰します。 v1.27.1にアップグレードすると、変更なしでクイックスタートが動作します。 – Chris

0

を参照してください。.NETでは、アプリケーション名に特殊文字は好きではありません。 Google APIクイックスタートのコードがコピーされましたが、引き続きエラーが発生しました。

//static string ApplicationName = "Drive API .NET Quickstart"; //DOESN'T WORK! 
static string ApplicationName = "oneWord"; //WORKS! 

おそらくURLエンコードなどの処理が必要ですが、上記の問題が修正されました。

関連する問題