3

以前に OAuth を使用したことがありますが (Twitter と PHP を使用)、簡単でした。私はOAuthをEverNote APIサンプルhttps://github.com/evernote/evernote-sdk-csharpで動作させようとしています(彼らが言うように、「実際のアプリケーションはOAuthを使用してEvernoteで認証するため」)。私はこれらを見ました:

シンプルな C# Evernote API OAuth の例またはガイド?

https://github.com/sethhitch/csharp-oauth-sample

http://blog.stevienova.com/2008/04/19/oauth-getting-started-with-oauth-in-c-net/

しかし、私はまだこれを行う方法がわかりません...これは私のコードです:

    // Real applications authenticate with Evernote using OAuth, but for the
    // purpose of exploring the API, you can get a developer token that allows
    // you to access your own Evernote account. To get a developer token, visit 
    // https://sandbox.evernote.com/api/DeveloperToken.action
    String authToken = "myAuthCode";

    if (authToken == "your developer token") {
      Console.WriteLine("Please fill in your developer token");
      Console.WriteLine("To get a developer token, visit https://sandbox.evernote.com/api/DeveloperToken.action");
      return;
    }

これに OAuth を追加して自分の を取得するにはどうすればよいauthTokenですか?

ありがとうございました。

4

4 に答える 4

7

このサンプル プロジェクトを確認してください: http://discussion.evernote.com/topic/30584-here-is-a-net-oauth-assembly/。これは、oauth の仕組みを理解するのに役立つと思います。

于 2013-02-28T18:17:39.367 に答える
2

これを MVC で動作させようとしている人のために、私は今朝、Evernote、OpenAuth、および C# をいじって、なんとかすべて動作させることができました。ここで、経験を説明し、MVC でそれを行う方法の概要を説明するブログ投稿/ライブラリをまとめました - http://www.shaunmccarthy.com/evernote-oauth-csharp/ - AsyncOAuth ライブラリを使用します: https://github .com/neuecc/AsyncOAuth

ここで役に立つと思われる AsyncOAuth のラッパーを作成しました: https://github.com/shaunmccarthy/AsyncOAuth.Evernote.Simple

注意すべき厄介な点 - Evernote エンドポイント (/oauth および /OAuth.action) は大文字と小文字を区別します

// Download the library from https://github.com/shaunmccarthy/AsyncOAuth.Evernote.Simple

// Configure the Authorizer with the URL of the Evernote service,
// your key, and your secret. 
var EvernoteAuthorizer = new EvernoteAuthorizer(
    "https://sandbox.evernote.com", 
    "slyrp-1234", // Not my real id / secret :)
    "7acafe123456badb123");

// First of all, get a request token from Evernote - this causes a 
// webrequest from your server to Evernote.
// The callBackUrl is the URL you want the user to return to once
// they validate the app
var requestToken = EvernoteAuthorizer.GetRequestToken(callBackUrl);

// Persist this token, as we are going to redirect the user to 
// Evernote to Authorize this app
Session["RequestToken"] = requestToken;

// Generate the Evernote URL that we will redirect the user to in
// order to 
var callForwardUrl = EvernoteAuthorizer.BuildAuthorizeUrl(requestToken);

// Redirect the user (e.g. MVC)
return Redirect(callForwardUrl);

// ... Once the user authroizes the app, they get redirected to callBackUrl

// where we parse the request parameter oauth_validator and finally get
// our credentials
// null = they didn't authorize us
var credentials = EvernoteAuthorizer.ParseAccessToken(
    Request.QueryString["oauth_verifier"], 
    Session["RequestToken"] as RequestToken);

// Example of how to use the credential with Evernote SDK
var noteStoreUrl = EvernoteCredentials.NotebookUrl;
var noteStoreTransport = new THttpClient(new Uri(noteStoreUrl));
var noteStoreProtocol = new TBinaryProtocol(noteStoreTransport);
var noteStore = new NoteStore.Client(noteStoreProtocol);
List<Notebook> notebooks = client.listNotebooks(EvernoteCredentials.AuthToken);
于 2013-09-28T17:38:27.283 に答える
1

https://code.google.com/p/devdefined-tools/wiki/OAuthにある OAuth ライブラリを試して、ここ記載されている手順に従ってください。

于 2013-03-01T03:33:04.237 に答える
0

追加する簡単なコードは次のとおりです。

EvernoteOAuth oauth = new EvernoteOAuth(EvernoteOAuth.HostService.Sandbox, myConsumerKey, myConsumerSecret);
        string errResponse = oauth.Authorize();
        if (errResponse.Length == 0)
        {
            Console.WriteLine(string.Format("Token: {0}\r\n\r\nExpires: {1}\r\n\r\nNoteStoreUrl: {2}\r\n\r\nUserId: {3}\r\n\r\nWebApiUrlPrefix: {4}", oauth.Token, oauth.Expires, oauth.NoteStoreUrl, oauth.UserId, oauth.WebApiUrlPrefix));
        }
        else
        {
            Console.WriteLine("A problem has occurred in attempting to authorize the use of your Evernote account: " + errResponse);
        }

このアセンブリを使用する必要があります。

using EvernoteOAuthNet;

ここで入手可能:

http://www32.zippyshare.com/v/98249023/file.html

于 2013-02-28T19:12:58.183 に答える