QEverCloud:Qt向けEvernote SDK

この記事を読んでいるので、おそらくEvernoteが何であるか知っているでしょう。 そしてもちろん、Qtが何であるか知っています:)

そして、多分あなたは、私のように、それらを結合したかったです。







Evernote Cloud APIにアクセスするC ++ / Qtでプログラムを作成するために、このような組み合わせを実装しようとした場合、これが軽度の言い方をすれば自明ではないことを既に知っています。 C ++の場合、Evernoteの作成者は、Thrift コンパイラーによって生成されたファイルのみを提供します 。 それらから、少なくとも何らかの形で機能する何か-月に関しては、そして残念なことに、決して直線ではありません。



私はこの方法で行ったのですが、この思い出に残る旅の結果によると、この方法で人々を送ることはあまり人道的ではないと判断しました。 結局、私は自分のライブラリを書き、それをGitHubに投稿しました。



QEverCloudがEvernote SDKよりも優れているのはなぜですか?







使用例として、デフォルトでメモ帳にテストノートを作成する簡単な小さなプログラムを示します。



 #include <QCoreApplication>
 #include <QTextStream>
 #include <例外>
 #include <QEverCloud.h>

名前空間qevercloudを使用します。


 int main(int argc、char * argv [])
 {
     QCoreApplication a(argc、argv);
     QTextStream cout(stdout);
     {
         NoteStore * ns =新しいNoteStore(&a);

         //開発者トークンをここに貼り付けます
         // https://www.evernote.com/api/DeveloperToken.action
         ns-> setAuthenticationToken( "S = s41:U = 427a0c:E = 14761d37b39:C = 1400a224f39:P = 1cd:A = en-devtoken:V = 2:H = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");

         // NoteStoreのURLを見つけます
         ns-> setNoteStoreUrl( "https://www.evernote.com/shard/xxx/notestore");

        注注;
         note.title = "テストノート";
         note.content = QString( "<?xml version = \" 1.0 \ "encoding = \" UTF-8 \ "?> \ n")
                 + "<!DOCTYPE en-note SYSTEM \" http://xml.evernote.com/pub/enml2.dtd \ "> \ n"
                 + "<en-note>"
                 + "<b>彼はくまのプーさんの世界に住んでいます!</ b> <br /> <br /> <p>うーん、<a href = \" https://github.com/mgsxx/QEverCloud \ "> QEverCloud </a>は引き続き機能します... </ p>"
                 + "</ en-note>";
         ns-> createNote(注);
     } catch(const std :: exception&e){
         cout << "例外が発生しました:" << e.what()<< endl;
         1を返します。
     } catch(...){
         cout << "不明な例外が発生しました!"  << endl;
         1を返します。
     }
     0を返します。
 }





開発者トークンは個人プログラムにとって非常に便利ですが、より深刻なプログラムの場合、OAuthを介して認証を取得するにはトークンとNoteStore URLが必要です。 QEverCloudを使用すると、これは簡単に行えます。



 #include <QEverCloudOAuth.h>

 ...

 // consumerKeyとconsumerSecretの取得:https://dev.evernote.com/doc/、GET AN API KEYボタン
 EvernoteOAuthDialog d(consumerKey、consumerSecret、 "sandbox.evernote.com");
 d.setWindowTitle( "Evernoteログイン");
 if(d.exec()!= QDialog :: Accepted){
     QMessageBox :: critical(0、 "Error"、d.oauthError());
 } else {
     QString authenticationToken = d.oauthResult()。AuthenticationToken;
     QString noteStoreUrl = d.oauthResult()。NoteStoreUrl;
 }




All Articles