1

そこで、http://www.daimto.com/、つまりhttp://www.daimto.com/webmaster-tools-api-with-c/のいくつかの例に従いました。長い夜の後、私はそれを機能させることができました。私がそれをした方法は、単に削除することです

new FileDataStore("Daimto.GoogleWebMasters.Auth.Store")

コードを次のように変更します。

  UserCredential credential = GoogleWebAuthorizationBroker(new ClientSecrets 
{ ClientId = clientId, ClientSecret = clientSecret }                                                                                            
, scopes                                                                                     
, userName                                                                                 
, CancellationToken.None                                                                      
, null).Result; // <-- notice null here

では、データストアは本当に必要なのでしょうか? 追加すると、IIS が更新ごとに新しいポート番号を生成するため、Google で URL リダイレクトを承認できなくなります。ところで、ディレクトリの物理フルパスを試しましたが、結果は同じです。

4

2 に答える 2

1

ファイル データストアまたはそのためのデータストアをデフォルトで含めない場合、クライアント ライブラリはファイル データストアを使用し、%appData% にファイルを作成します。

したがって、技術的に言えば、それを使用する必要はありません。

FileDataStore は正確に何をしますか?

FileDataStore を見てみましょう。次のコードが認証されるとき。Drive.Auth.Store というフォルダーが、コードを実行するマシンの %AppData% ディレクトリに作成されます。

したがって、 %AppDatat%\Drive.Auth.Store という新しいディレクトリが作成されます。マシンを確認すると、C:\Users\lindaHP\AppData\Roaming\Drive.Auth.Store にあることがわかります。

UserCredential credential;
using (var stream = new FileStream(clientSecretsJsonFilePath
                                   ,FileMode.Open
                                   ,FileAccess.Read))
      {   
      credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
      GoogleClientSecrets.Load(stream).Secrets,
      new[] { DriveService.Scope.Drive,  DriveService.Scope.DriveFile },
      "LookIAmAUniqueUser",
       CancellationToken.None,
      new FileDataStore("Drive.Auth.Store")                               
      ).Result;
      }

ユーザーが認証要求画面で同意をクリックすると、そのディレクトリに次の構造の新しいファイルが作成されます。

Google.Apis.Auth.OAuth2.Responses.TokenResponse-LookIAmAUniqueUser.TokenResponse-LookIAmAUniqueUser

各ユーザーには独自のファイルがあり、「LookIAmAUniqueUser」値を変更してユーザーを変更します。

このファイルには、このユーザー アカウントにアクセスするために必要なすべての情報が含まれています。

代替チュートリアル

別のチュートリアルがあります。 Google .net – FileDatastore の謎を解く

私からの注意

filedatastore を使用しないとポートの表示が変わるかどうかわかりません。これをテストする必要があります。クライアント ライブラリのバグである可能性があります。または、あなたの見方に応じて私が推測する機能。

于 2016-01-22T11:57:55.183 に答える
0

この解決策は間違った方法だったようです。おそらく時代遅れです。最後に、これに基づいてすべてを書き直しまし。現在は、ローカルと公開の両方で、FileDataStore を使用して検索できます。

于 2016-01-23T22:15:20.100 に答える