5

質問:

ここから DropBox csharp API を使用しています:
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();

問題は、accountinfo で例外をスローすることです。(System.Net.HttpStatusCode.Unauthorized) すべて正常に動作する前に、ログイン (usertoken & usersecret) を取得します。

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

var url = _client.BuildAuthorizeUrl(Request.Url.ToString() + "?dropboxcallback=1");
Response.Redirect(url);

ログインのためにドロップボックスにリダイレクトする場所... Webアプリケーションがないため、URLがありません...

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

ハードコーディングされたユーザー名とパスワードを直接指定してログインするにはどうすればよいですか?

サンプル アプリケーションを使用すると動作しますが、Web 上でユーザー名とパスワードを入力する必要があり、コンソール アプリケーションでは時間がかかります...

4

5 に答える 5

6

私が他の API (facebook、google、stack exchange など) から知る限り、ユーザーを Dropbox の Web ページにリダイレクトする必要があります。これにより、そのアカウントを使用して物事を実行するためのアクセス許可が付与されます。

そのため、一般に、Web ブラウザーなしでこれを実現することはできません。そうしないと、ドロップボックスの許可システムをハックするために、本当に汚いハックを実行する必要があります。

Google の「OAuth 2.0 認証フロー」をご覧ください。これは、 Yahooで見つけた図で、それがどのように機能するかを示しています。

OAuth 2.0 フロー

于 2012-07-15T21:23:26.973 に答える
2

DropnetClient の 4 つの引数コンストラクターを使用するには、Web ベースの URL を構築し、ユーザーが自分のアカウントを認証できるようにする必要があります。これは強制的なことです。ユーザーが認証プロセスで許可ボタンを押した後にアクセストークンが生成されます。

于 2012-11-06T08:32:27.350 に答える
1

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

最初に、標準のブラウザー ベースの承認フローに従う単純なプログラムを (同じアプリ キーを使用して) 作成します。次に、それを使用して、目的のユーザーでアプリを承認します。これにより、そのユーザーとアプリ キーに関連付けられた OAuth アクセス トークン (「トークン」と「トークン シークレット」) が得られます。

次に、サービス スタイルのアプリケーションで、OAuth アクセス トークンをハードコードするだけです (DropNetClientの 4 つの引数コンストラクターを使用)。

于 2012-07-22T04:41:43.963 に答える
1

GameScripting が説明したように、Dropbox API は oauth を使用します。これには、アクセス トークンを認証するために Dropbox Web サイトからのユーザー ログインが必要です。

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

どのような種類のアプリケーションを構築していますか? 通常のプロセスでは、アプリケーション内にブラウザー コントロールをロードし、それを使用してログイン URL に移動します。

このプロセスがどのように機能するかを理解するために、Windows Phone アプリのサンプルもご覧ください。 .cs

于 2012-07-16T00:01:41.120 に答える
0

SharpBoxを使用して可能です-テスト済み、動作します。
AccessToken を 1 回限りのアクションとして手動で取得する必要があります。その後、ログイン ページを省略して、保存された 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
);
于 2013-08-21T10:21:28.507 に答える