私のUWPアプリケーションでは、Googleドライブをストレージの場所として使用しようとしています。私はGoogleによって提供されたquickstartで仕事を始めました。空のUWPプロジェクトにコードをコピーし、出力コードの一部(Console.Writeline
をtextbox.append
メソッドに変更)を作成しようとしました。これは、ビルドに失敗し、エラーを報告します。UWPアプリケーションでのGoogleドライブ.NET APIの使用
Cannot find type System.ComponentModel.ExpandableObjectConverter in module System.dll
私は、Windows 10およびVS 2015を実行していると私はNuGet経由SDKをインストールしました。クイックスタートのサンプルコードはコンソールアプリケーションで動作します。それは問題を抱えているUWPアプリケーションです。
UWPアプリケーションの場合、クイックスタートコードをボタンクリック方式で入力します。これは、APIが実際にクイックスタートで指定されたコードとは少し異なるuwpアプリケーション用の非同期メソッドを実際に持っているためです。
に含まれるもの:
using System;
using System.Collections.Generic;
using System.IO;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Google.Apis.Auth.OAuth2;
using Google.Apis.Drive.v3;
using Google.Apis.Drive.v3.Data;
using Google.Apis.Services;
using Google.Apis.Util.Store;
using System.Threading;
ボタン方式:
private async void button_Click(object sender, RoutedEventArgs e)
{
UserCredential credential;
using (var stream =
new FileStream("client_secret.json", FileMode.Open, FileAccess.Read))
{
string credPath = ""; //System.Environment.GetFolderPath(
//System.Environment.SpecialFolder.Personal);
credPath = Path.Combine(credPath, ".credentials/drive-dotnet-quickstart.json");
credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
new Uri("ms-appx:///Assets/client_secrets.json"),
Scopes,
"user",
CancellationToken.None);
//Console.WriteLine("Credential file saved to: " + credPath);
}
// Create Drive API service.
var service = new DriveService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = ApplicationName,
});
// Define parameters of request.
FilesResource.ListRequest listRequest = service.Files.List();
listRequest.PageSize = 10;
listRequest.Fields = "nextPageToken, files(id, name)";
// List files.
IList<Google.Apis.Drive.v3.Data.File> files = listRequest.Execute()
.Files;
textBox.Text += "Files:\n";
if (files != null && files.Count > 0)
{
foreach (var file in files)
{
textBox.Text += (file.Name + file.Id + "\n");
}
}
else
{
textBox.Text += ("No files found.");
}
}
それはクライアントシークレットをロードするためのコードが含まれていませんよう、アプリケーションがコンパイルされると、テストコードは動作しませんが。私はコードをテストすることができなかったので、これは私が提供できるすべてです。
半関連性がある以外はpostがあります。ただし、回答がうまくいかず、投稿が4年間死んでしまったという点が異なります。私は、特にクイックスタートのようにGoogleチームにタグを付ける新しい投稿を作成したかったのです。
私の具体的な質問は:この問題を回避する方法はありますか、それとも間違っているのですか?
感謝をされていなかったことを確認いただき、誠にありがとうございます。私は、残りのAPIのルートを試してみましょう - それはそれで回り込むことは決して遅くない方が良いと思います。私の質問に答えていただきありがとうございます。 – Nibious