これを行うことができるChrome拡張機能を作成しましょう!急いで最終結果を確認したい場合は、このチュートリアルのコードの最終バージョンについては、GitHubリポジトリを参照してください。
キーテイクアウト
ロードされたら、拡張機能リストに表示されます。
クロムの拡張機能を使用して画面上のデータを単純に収穫して解析することはできますが、Trelloは時々信頼できないことが証明されており、人口の多いボードでクラッシュする傾向があります。これが、Chrome ExtensionのTrello.comドメインとの統合のみを使用して、リストに新しいコンテキストメニューオプション(「エクスポートカード」オプション)を作成する理由です。 APIを介したデータ。
あなたがそれにいる間、あなたはフラグメントとファンシーセティングフォルダーを削除することができます。それらは必要ありません。
git clone https://github.com/Swader/ChromeSkel_a.git
ワークフローとマニフェスト
ユーザーがTrelloボードを開いていると
設定ページを作成するには、簡単なHTMLページを書きます。デモンストレーションのために、この場合は非常にシンプルに保ちます。ファンデーションを使用してスタイルを整えます(今はボタンのみですが、将来の投稿でより良い設定ページの作成に取り組んでいます)ので、基礎Essentialsバンドルをダウンロードし、その内容を /設定しないようにしてください。 index.htmlはそのフォルダーに分類されます。このようなフォルダー構造が必要です:
<span>// key.js </span><span>var APP_KEY = '{{KEY}}';</span>
スクリーンショットに表示されていない追加のフォルダーがある場合は、自由に削除してください。ファイルsettings/js/settings.jsを作成して、今のところ空にしたままにしてください。
わかりました、ビジネスに取り掛かりましょう。したがって、ユーザーは、[拡張機能]タブで「オプション」に移動するか、許可されていないときに拡張機能を使用しようとすることにより、このページに終わることです。 2つのDIVを使用して、かなり基本的なHTMLページを作成しましょう。1つは「ログアウト」ボタンで認証されている場合、もう1つはまだ認知度が低く、[承認]ボタンをクリックする必要がある場合です。 index.htmlの内容をこれに置き換えます:
git clone https://github.com/Swader/ChromeSkel_a.git
ログインとログアウトボタンの2つのDIVがあり、必要なJSを引き込みます。この場合、財団のデフォルトに含まれるjqueryを使用していますが、プロジェクトの他の場所で自分のダウンロードしたものを使用することを選択しても、私がやったように最新の状態を取得した場合に備えて、実際には関係ありません(もっとそれは後で)。
次に、いくつかのロジックを追加しましょう。 settings.jsを開いて、このコンテンツを指定します:
<span>// key.js </span><span>var APP_KEY = '{{KEY}}';</span>
ドキュメントを読むことで、クライアントアプリが認証されている場合、Trello_TokenがLocalStorageに存在することがわかります。これは、各DIVをいつ表示するかについてのインジケーターとして使用できることを意味します。 init機能では、divをつかみ、クリックハンドラーをボタンに追加します(まだロジックはありません)。最後に、trello_tokenに従って適切なdivを非表示にします。 たとえば、ユーザーが認証されている場合、このような画面を取得します。
今すぐTrello JSクライアントを取得しましょう。
Trelloのドキュメントは、Chrome拡張機能を念頭に置いて書かれているわけではなく、JSクライアントライブラリをドメインから取得しながら、URLにキーを添付することをお勧めします。
拡張の閉じた環境に対処しているのを見て、パフォーマンス上の理由でローカルで利用できるようにすることがはるかに理にかなっていると見て、本当にそうすることはできません。したがって、上記のURLにアクセスしますが、重要なパラマリはありません。
このファイルの内容をlib/trello_client.jsに保存してから、
<span>{ </span> <span>"name": "Trello Helper", </span> <span>"version": "0.1", </span> <span>"manifest_version" : 2, </span> <span>"description": "Trello Helper adds some much needed functionality to Trello. The current version focuses on exporting card information from lists.", </span> <span>"background" : { </span> <span>"page" : "background.html", </span> <span>"persistent": false </span> <span>}, </span> <span>"page_action" : </span> <span>{ </span> <span>"default_icon": { </span> <span>"19": "icons/19.png", </span> <span>"38": "icons/38.png" </span> <span>} </span> <span>}, </span> <span>"content_scripts": [ </span> <span>{ </span> <span>"matches": ["https://trello.com/b/*"], </span> <span>"js": [ </span> <span>"lib/jquery-2.1.1.min.js", </span> <span>"scripts/main.js" </span> <span>], </span> <span>"run_at": "document_idle" </span> <span>} </span> <span>], </span> <span>"permissions": [ </span> <span>"tabs" </span> <span>], </span> <span>"icons": { </span> <span>"16": "icons/16.png", </span> <span>"48": "icons/48.png", </span> <span>"128": "icons/128.png" </span> <span>}, </span> <span>"web_accessible_resources": [ </span> <span>"settings/index.html" </span> <span>], </span> <span>"options_page": "settings/index.html" </span><span>}</span>
Trelloとの執着するのはそれだけです。メソッドを呼び出して、上にあるページをリロードします(設定画面、つまり)。
<span><span><!doctype html></span> </span><span><span><span><html</span> class<span>="no-js"</span> lang<span>="en"</span>></span> </span><span><span><span><head</span>></span> </span> <span><span><span><meta</span> charset<span>="utf-8"</span>/></span> </span> <span><span><span><meta</span> name<span>="viewport"</span> content<span>="width=device-width, initial-scale=1.0"</span>/></span> </span> <span><span><span><title</span>></span>Trello Helper Settings<span><span></title</span>></span> </span> <span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="css/foundation.css"</span>/></span> </span> <span><span><span><script</span> src<span>="js/vendor/modernizr.js"</span>></span><span><span></script</span>></span> </span><span><span><span></head</span>></span> </span><span><span><span><body</span>></span> </span> <span><span><span><div</span> class<span>="row"</span>></span> </span> <span><span><span><div</span> class<span>="large-12 columns"</span>></span> </span> <span><span><span><h1</span>></span>Trello Helper Settings<span><span></h1</span>></span> </span> <span><span><span></div</span>></span> </span><span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="row"</span>></span> </span> <span><span><span><div</span> class<span>="large-12 columns"</span>></span> </span> <span><span><span><div</span> class<span>="panel"</span> id<span>="trello_helper_loggedout"</span> <span>style<span>="<span>display: none</span>"</span></span>></span> </span> <span><span><span><p</span>></span>To get going, you'll need to authorize the extension to use your Trello account.<span><span></p</span>></span> </span> <span><span><span><p</span>></span>Do it by clicking the big Authorize button below.<span><span></p</span>></span> </span> <span><span><span><a</span> href<span>="#"</span> class<span>="medium success button"</span> id<span>="trello_helper_login"</span>></span>Authorize<span><span></a</span>></span><span><span><br</span>/></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="panel"</span> id<span>="trello_helper_loggedin"</span> <span>style<span>="<span>display: none</span>"</span></span>></span> </span> <span><span><span><p</span>></span>You are already authorized. If something doesn't work, try logging out using the button below, and logging back in.<span><span></p</span>></span> </span> <span><span><span><a</span> href<span>="#"</span> class<span>="medium success button"</span> id<span>="trello_helper_logout"</span>></span>Log out<span><span></a</span>></span><span><span><br</span>/></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span><span><span><span></div</span>></span> </span> <span><span><span><script</span> src<span>="../scripts/key.js"</span>></span><span><span></script</span>></span> </span><span><span><span><script</span> src<span>="js/vendor/jquery.js"</span>></span><span><span></script</span>></span> </span><span><span><span><script</span> src<span>="js/settings.js"</span>></span><span><span></script</span>></span> </span><span><span><span></body</span>></span> </span><span><span><span></html</span>></span></span>
git clone https://github.com/Swader/ChromeSkel_a.git
オンラインドキュメントのロジックに続いて、Trelloオブジェクトにはセットキーメソッドがあり、これを設定するために使用することがわかります。次に、Authorizeメソッドをアクションに呼びます。ドキュメントによると、リダイレクトの代わりにタイプポップアップを使用すると、ユーザーが受信したときに秘密のキーを手動で貼り付ける必要がありますが、これは私たちが探しているものではありません。ただし、リダイレクトを使用すると、ページは認証にリダイレクトされ、一度完了したら戻ります。インタラクティブフィールドは、falseに設定された場合、ポップアップとリダイレクトの両方を無効にし、代わりにのみlocalStorage.TRELLO_TOKEN値が存在するかどうかをチェックします。ドキュメントに従って、最初にリダイレクトで通常の承認を呼び出す必要があります。次に、設定ページに戻ったら、再度呼び出す必要がありますが、インタラクティブセットをfalseにして、前のリダイレクトをつかむようにします提供された。それはすべて少し複雑ですが、それは機能します。
ただし、別の問題があります。 [設定]ページが開いた直後に非対話型認証を呼び出すと、許可後のリダイレクトがまだ発生していないため、ページにエラーが発生します。別の方法では、Treloからリダイレクトの後に表示される[設定]ページに「確認」などの別のボタンを追加することで、ユーザーが非対話承認を手動で開始できるようにします。しかし、これはUXの悪夢のように思えます。最後に、3番目のソリューションを選択しました。次のコードをlib/hashsearch.jsに保存します。
<span>// key.js </span><span>var APP_KEY = '{{KEY}}';</span>
Redirectモードを介してTrelloを使用して承認すると、URLにトークンがありますが、それが来たページにリダイレクトされます。このトークンは、Trello JSクライアントのニーズの認証トークンとなります。したがって、URL内のこのトークンの存在を検出できれば、Trelloからのリダイレクトを扱っているため、非対話的な承認プロトコルを自動的かつ安全にトリガーできると結論付けることができます。
設定ページにHashsearchを追加した後…
…settings.jsファイルは、最後に次のようになります:
<span>{ </span> <span>"name": "Trello Helper", </span> <span>"version": "0.1", </span> <span>"manifest_version" : 2, </span> <span>"description": "Trello Helper adds some much needed functionality to Trello. The current version focuses on exporting card information from lists.", </span> <span>"background" : { </span> <span>"page" : "background.html", </span> <span>"persistent": false </span> <span>}, </span> <span>"page_action" : </span> <span>{ </span> <span>"default_icon": { </span> <span>"19": "icons/19.png", </span> <span>"38": "icons/38.png" </span> <span>} </span> <span>}, </span> <span>"content_scripts": [ </span> <span>{ </span> <span>"matches": ["https://trello.com/b/*"], </span> <span>"js": [ </span> <span>"lib/jquery-2.1.1.min.js", </span> <span>"scripts/main.js" </span> <span>], </span> <span>"run_at": "document_idle" </span> <span>} </span> <span>], </span> <span>"permissions": [ </span> <span>"tabs" </span> <span>], </span> <span>"icons": { </span> <span>"16": "icons/16.png", </span> <span>"48": "icons/48.png", </span> <span>"128": "icons/128.png" </span> <span>}, </span> <span>"web_accessible_resources": [ </span> <span>"settings/index.html" </span> <span>], </span> <span>"options_page": "settings/index.html" </span><span>}</span>
これで拡張機能を試してみることができます。 [拡張機能]タブを読み込み、[オプション]リンクをクリックし、認証をテストしてログアウトします。すべてが正常に動作するはずです。
<span><span><!doctype html></span> </span><span><span><span><html</span> class<span>="no-js"</span> lang<span>="en"</span>></span> </span><span><span><span><head</span>></span> </span> <span><span><span><meta</span> charset<span>="utf-8"</span>/></span> </span> <span><span><span><meta</span> name<span>="viewport"</span> content<span>="width=device-width, initial-scale=1.0"</span>/></span> </span> <span><span><span><title</span>></span>Trello Helper Settings<span><span></title</span>></span> </span> <span><span><span><link</span> rel<span>="stylesheet"</span> href<span>="css/foundation.css"</span>/></span> </span> <span><span><span><script</span> src<span>="js/vendor/modernizr.js"</span>></span><span><span></script</span>></span> </span><span><span><span></head</span>></span> </span><span><span><span><body</span>></span> </span> <span><span><span><div</span> class<span>="row"</span>></span> </span> <span><span><span><div</span> class<span>="large-12 columns"</span>></span> </span> <span><span><span><h1</span>></span>Trello Helper Settings<span><span></h1</span>></span> </span> <span><span><span></div</span>></span> </span><span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="row"</span>></span> </span> <span><span><span><div</span> class<span>="large-12 columns"</span>></span> </span> <span><span><span><div</span> class<span>="panel"</span> id<span>="trello_helper_loggedout"</span> <span>style<span>="<span>display: none</span>"</span></span>></span> </span> <span><span><span><p</span>></span>To get going, you'll need to authorize the extension to use your Trello account.<span><span></p</span>></span> </span> <span><span><span><p</span>></span>Do it by clicking the big Authorize button below.<span><span></p</span>></span> </span> <span><span><span><a</span> href<span>="#"</span> class<span>="medium success button"</span> id<span>="trello_helper_login"</span>></span>Authorize<span><span></a</span>></span><span><span><br</span>/></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><div</span> class<span>="panel"</span> id<span>="trello_helper_loggedin"</span> <span>style<span>="<span>display: none</span>"</span></span>></span> </span> <span><span><span><p</span>></span>You are already authorized. If something doesn't work, try logging out using the button below, and logging back in.<span><span></p</span>></span> </span> <span><span><span><a</span> href<span>="#"</span> class<span>="medium success button"</span> id<span>="trello_helper_logout"</span>></span>Log out<span><span></a</span>></span><span><span><br</span>/></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></div</span>></span> </span><span><span><span></div</span>></span> </span> <span><span><span><script</span> src<span>="../scripts/key.js"</span>></span><span><span></script</span>></span> </span><span><span><span><script</span> src<span>="js/vendor/jquery.js"</span>></span><span><span></script</span>></span> </span><span><span><span><script</span> src<span>="js/settings.js"</span>></span><span><span></script</span>></span> </span><span><span><span></body</span>></span> </span><span><span><span></html</span>></span></span>
結論
この部分では、拡張機能の基本を構築し、カスタムファンデーションを搭載した設定画面を介して認証を実装し、TrelloのJavaScriptクライアントライブラリを使用しています。Trello Chrome Extensionを収益化できますか? Chrome Webストアにより、開発者は1回限りの購入またはサブスクリプションのいずれかとして、拡張機能を請求できます。アプリ内購入や広告を通じて拡張機能を収益化することもできます。
以上がTrello Chrome拡張機能の構築方法-API認証の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。