2012-07-15 26 views
6

質問:私はここからのDropbox CSHARPのAPIを使用していDropNet DropBoxログインは、コンソールアプリケーションでプログラムで行う方法ですか?

:ユニットテストから
https://github.com/dkarzon/DropNet

、と私はそれが同じように動作することを考え出し https://github.com/dkarzon/DropNet/blob/master/DropNet.Samples/DropNet.Samples.Web/Default.aspx.cs

ここからのみの作業サンプルこれは

DropNet.DropNetClient client = new DropNet.DropNetClient(strApiKey, strAppSecret); 

DropNet.Models.UserLogin login = client.GetToken(); 
client.UserLogin = login; 

var accountInfo = client.AccountInfo(); 
str = accountInfo.quota_info.quota.ToString(); 

です。probemは、accountinfoで例外をスローします。 (System.Net.HttpStatusCode.Unauthorized) うまく動作する前に、私はログインを取得します(usertoken & usersecret)。

私は私の問題は、サンプルアプリケーションのこの部分だと思う:

それは、ログイン用のDropboxにリダイレクト
var url = _client.BuildAuthorizeUrl(Request.Url.ToString() + "?dropboxcallback=1"); 
Response.Redirect(url); 

... 私は、Webアプリケーションを持っていないので、私は何のURLを持っていません。 ..

私が持っているのは、毎晩自分のデータベースのバックアップをサービスとして自動的に作成するコンソールアプリケーションです。ウェブブラウザと電子メール/ユーザー名を入力する必要があるユーザーは非常に悪い+パスワード。

ハードコードされたユーザー名とパスワードを直接入力してログインするにはどうすればよいですか?私の知る限りでから知っているよう

私は、サンプル・アプリケーションを使用する場合、それは動作しますが、それはウェブ上のユーザ名とパスワードを入力する必要があり、それはコンソールアプリケーションのための大きな時間を吸います...

+0

あなたは、コンソールアプリケーションでUIコントロールをホストするために抱き合わせていますか? – Paparazzi

+1

いいえ、私は、DropBoxにファイルをコピーしようとしています。利用可能な領域を最初に確認しています(コンソールアプリケーション)。私は間違いなく、UIコントロールやUIも必要としません。 –

答えて

1

認証プロセスでボタンを許可ヒットした後、それはあります可能、SharpBoxを使用して - テスト、動作します。
ワンタイムアクションとしてAccessTokenを手動で取得する必要があります。その後、ログインページを省略し、保存したAccessTokenを使用できます。

http://www.jayway.com/2012/02/06/unboxing-dropbox-and-sharpbox-2/

魔法の行は次のようになります。

Globals.DropBox.Token = AppLimit.CloudComputing.SharpBox.StorageProvider.DropBox.DropBoxStorageProviderTools 
.ExchangeDropBoxRequestTokenIntoAccessToken(
     Globals.DropBox.config 
    , Globals.DropBox.AppKey, Globals.DropBox.AppSec 
    , Globals.DropBox.requestToken 
); 
6

他のAPI(facebook、google、stack exchangeなど)を使うと、DropboxのWebページにあなたのユーザーをリダイレクトする必要があります。

したがって、一般にウェブブラウザなしでこれを実現することはできませんそれ以外の場合は、本当に汚いハックを実行して、dropboxの許可システムをハックする必要があります。

googleの「OAuth 2.0認証フロー」をご覧ください。 GameScriptingは、DropboxのAPIを説明したように

The OAuth 2.0 flow

+0

これが真の場合... APIはsooooo役に立たないです... –

+0

私がすでに言及したように、結果のHTMLを自分自身で解析し、テキストボックス名を抽出して、ユーザーがその資格情報を入力したことをシミュレートし、 API。あなたは、アンチ[XSRF](http://de.wikipedia.org/wiki/Cross-Site_Request_Forgery)のために使用されるログインIDのようないくつかのものをハックしなければならないかもしれないことに注意してください;) – GameScripting

+0

私はsooooをねじ込みました... Tried UbuntuOne - API(それが呼び出せれば)はさらに悪いです。今はGoogleドライブが私の最後の希望です。それもoAuthを使うので、おそらく私はまだ熟練しています。たぶん、私自身のクラウドストレージプロバイダを書く時です、私は市場のギャップを感じます - 多くのクラウドストレージプロバイダがありますが、誰も便利なAPIを持っていません... –

1

は、アクセストークンを認証するためにDropboxのウェブサイトを通じて、ユーザーのログインを必要にOAuthを使用しています: は、ここで私はそれがどのように動作するかのを示しYahooで見つけ図です。

ここで、3ステップのプロセスについてはhttp://dkdevelopment.net/what-im-doing/dropnet/のドキュメントをご覧ください。

どのようなアプリケーションを構築していますか?通常のプロセスでは、アプリケーション内にブラウザコントロールを読み込んで、ログインURLに移動します。 https://github.com/dkarzon/DropNet/blob/master/DropNet.Samples/DropNet.Samples.WP7/MainPage.xaml.cs

+0

- >どのようなアプリケーションを構築していますか?私は、あなたが書く前にそれを読んでください...コンソールアプリケーションのWebBrowserを見たことがあります(Lynxはカウントされません。私はC#用コンソールブラウザを書いたくありません) )。 –

+0

コンソールアプリケーションは、単一のDropboxアカウントで内部的にのみ使用されますか?もしそうなら、例のような単純なページを使って手動でトークンを手に入れ、ユーザー名とパスワードの代わりにトークンをアプリケーションに「ハードコード」することをお勧めします。 – dkarzon

+0

はい、情報の欠けているビットは、あなたがアクセストークンにRequestTokenを交換する必要があるということです。結局のところ、公開鍵/秘密鍵はパスワードを暗号化するので、誰もそれをリバースエンジニアリングすることはできません。 –

1

代わりに、ユーザー名とパスワードをハードコーディング、あなたがOAuthアクセストークンをハードコーディングすることができます

はまたあなたにこのプロセスがどのように動作するかのアイデアを与えるために、サンプルのWindows Phoneアプリを見てみましょう。

最初に、標準のブラウザベースの認証フローに続く簡単なプログラム(同じアプリキーを使用)を作成します。それを使用して、目的のユーザーとアプリを認証します。これにより、そのユーザーとアプリキーに関連付けられたOAuthアクセストークン(トークンとトークンシークレット)が表示されます。

サービススタイルのアプリケーションでは、DropNetClientの4引数コンストラクタを使用して、OAuthアクセストークンをハードコードするだけです。 DropnetClientの4引数のコンストラクタをuisngするため

2

また、我々はaccesstokenが生成されます、WebベースのURLを構築し、これはcompusory事であるユーザーが自分のアカウントを認証できるようにする必要があり、ユーザが

関連する問題