2017-12-14 26 views
3

私はXamarin FormsでGoogle Sheets APIを使用しようとしていますが、.NETでプログラミングするときと同じようにGoogleとの認証に使用されるclient_secret.jsonファイルの読み込みに問題があります。 は、次の行を実行する場合:Google Sheets APIの使用

using (var stream = 
      new FileStream("client_secret.json", FileMode.Open, FileAccess.Read)) 
     { ... } 

は、私は、ファイルclient_secret.jsonを見つけることができないエラー示すを取得しています。そのファイルのプロパティを私のソリューションに入れて、 "Always Copy"オプションを使ってディレクトリにコピーするようにしていますが、これは不運です。 (私はVisual Studio 2017を使用しています)。

誰でもこの問題を解決できますか?ありがとうございました。

更新日:私が使用 コードは(任意の助けをいただければ幸いです)以下の通りです:

 AssetManager assets = Android.App.Application.Context.Assets; 
     var path = System.IO.Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), @"client_secret.json"); 
     using (var asset = assets.Open("client_secret.json")) 
     using (var dest = System.IO.File.Create(path)) 
      asset.CopyTo(dest); 

     using (var stream = assets.Open(@"client_secret.json")) 
     { 
      var secrets = GoogleClientSecrets.Load(stream).Secrets; 

      string credPath = System.Environment.GetFolderPath(
       System.Environment.SpecialFolder.Personal); 
       credPath = Path.Combine(credPath, "sheets.googleapis.com-dotnet-quickstart.json"); 

       credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
        GoogleClientSecrets.Load(stream).Secrets, 
        Scopes, 
        "user", 
        CancellationToken.None, 
        new FileDataStore(credPath, true)).Result; 
     } 
+0

からJSONを読み込むために2-てみてください...また、あなたがこの問題 –

+0

あなたは解決策を見つける..did解決しませんでした –

+1

私はAndroidとiOSプラットフォームで使用するクロスプラットフォームの.NET標準アプリケーションソリューションを使用しています。 – Levimatt

答えて

0

私もclient_secret.jsonファイルに問題がありました。それが所属していた場所の指示は私にとってはうまくいかなかった。

私は自分のホームディレクトリの.credentialsディレクトリ(/user/.credentials)にコピーを入れ、実行中のアプリケーションのディレクトリにコピーを置いて、そのうちの1つが働いていました。私は、アプリケーションがそれを見つけるまで、別のディレクトリにclient_secret.jsonを配置しようとします。

+0

あなたはもっと詳しく説明できますか?この問題を避けるために何が必要なのですか? –

+0

アプリはそれを見つける必要があります。しかし、おそらくあなたの場合はそれ以上です。このページを見ましたか? https://android-developers.googleblog.com/2016/02/using-credentials-between-your-server.html – NancySchorr

0

次のことを実行する必要があります。

Assestでclient_secret.jsonを1-置きます。

Assestあなたはポータブルまたは.Androidプロジェクトでは、このコードを使用しなかった

using (var stream = this.Assets.Open(@"client_secret.json")) 
    { 
     var secrets = GoogleClientSecrets.Load(stream).Secrets; 
+0

手順1のコードを入力してください。 – Levimatt

+0

assestにjsonファイルを追加するだけです。それは正常に動作します。しかしGoogle apiはxamarin.androidをサポートしていないため、Googleからの承認を得る際に別の問題に直面します。私は明日の朝に問題を貼り付けます –

+0

それは私を助けることができるかどうかを知るためにあなたの問題を投稿することはできますか? – Levimatt

関連する問題