自分では複数のオンライン・ストレージを使用していましたが、世間で大人気のDropBoxは使っていませんでした。しかし、避けては通れないので軽く使ってみました。とりあえず、ライブラリとしてはSharpBoxを使用して、そのアプリのフォルダのファイル一覧を得るだけ。
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using AppLimit.CloudComputing.SharpBox;
using AppLimit.CloudComputing.SharpBox.StorageProvider.DropBox;
namespace DropBox001
{
class Program
{
private const string authorizationCallbackUri = "http://……/";
private const string consumerKey = "……";
private const string consumerSecret = "……";
static void Main(string[] args)
{
CloudStorage dropBoxStorage = new CloudStorage();
var dropBoxConfig =
CloudStorage.GetCloudConfigurationEasy(
nSupportedCloudConfigurations.DropBox
);
DropBoxConfiguration config = dropBoxConfig as DropBoxConfiguration;
config.AuthorizationCallBack = new Uri(authorizationCallbackUri);
DropBoxRequestToken requestToken =
DropBoxStorageProviderTools.GetDropBoxRequestToken(
config, consumerKey, consumerSecret
);
String AuthorizationUrl =
DropBoxStorageProviderTools.GetDropBoxAuthorizationUrl(
config, requestToken
);
Process.Start(AuthorizationUrl);
Console.WriteLine("認証が終わったらEnterを押して下さい:");
Console.ReadLine();
ICloudStorageAccessToken accessToken =
DropBoxStorageProviderTools.ExchangeDropBoxRequestTokenIntoAccessToken(
config, consumerKey, consumerSecret, requestToken
);
ICloudStorageAccessToken storageToken = dropBoxStorage.Open(
dropBoxConfig, accessToken
);
var ent = dropBoxStorage.GetRoot();
foreach (var item in ent)
{
Console.WriteLine("{0},{1},{2}", item.Name, item.Modified, item.Length);
}
dropBoxStorage.Close();
}
}
}
たかがこの程度のサンプルソースを書くのに手間掛かり過ぎ。なぜ手間が掛かるのかといえば、ドキュメントの圧倒的不足と矛盾。ドキュメントが無いのも説明不足も当たり前なら、旧版の内容と一部混同して矛盾するし(どこにも定義されていない変数を参照するサンプルまであった!)