Handsontableって便利なんですが、細かなところで設定できないことが割とあります。 今回はドラッグすると固定にしたシートの行が自動で追加されてしまうのを禁止する方法をメモっときます。 [crayon-60deef […]
カテゴリー: Web制作
[ひま缶SSL化]WordPressサイトのSSL化手順
みなさまこんにちは。ひまみちです。 本日、当ブログはSSL対応しました。 URLも下記の通り変更となります。 http://himakan.net/ ↓ https://himakan.net/ SSLはショッピングサイ […]
[Dreamweaver CC]コードビューオプションで非表示の文字を表示設定にしているのに表示されない現象
みなさんこんにちは。ひまみちです。 普段仕事でDreamweaver CCを使っています。 私はどうしても非表示の文字が表示されていないと落ち着かないのですが、たまに非表示の文字を表示設定にしているのに、表示されないとい […]
[gMarker.js]gMarkerのソースコード[JSライブラリ]
Google Mapを簡単に使おうでおなじみの「gMarker.js」ですが、 ソースコードの説明をしておきます。 なんのこと言っているの?というあなたはこちらをご覧ください。 ライセンスは「MIT」です。 ソースコード […]
コピペですぐ使えるHTMLとCSSデザイン集[枠編](レスポンシブ対応)
こんにちは。ひまみちです。 今回はコピペですぐに使えるCSSのデザインをいくつか作りたいと思います。 見本は画像であくまでもイメージです。 お使いのブラウザウやほかのスタイルの干渉などで必ずしもこのような形になるとは限ら […]
[WordPress]記事ごとにサイドバーの場所変更や非表示する方法
地味にそんな機能あったんだと最近気づいたのでメモ。 新規投稿を追加画面の右下のプルダウンで好きな表示を選択する。 地味だが結構役に立つ。 カテゴリツールの記事だけサイドバーを非表示にしました。
jQuery-Validation-Engineで特定のエラーメッセージを非表示にする方法
Webサイトのフォームを作成するときjQuery-Validation-Engineがとても便利です。 リアルタイムで入力内容をチェックし、エラーメッセージを表示させる設定などがいとも簡単にできるプラグインです。 jQu […]
好きな文字をGoogle chromeブラウザのコンソールに表示させる方法
facebookとかのサイトでブラウザ上のコンソール開いたことありますか? STOP! って書かれているあれです。 今回はあれの出す方法のメモ。 やり方は簡単!以下を実行。 [crayon-60deefa92225330 […]
[Webデザイン]作業効率が劇的にアップ!使用頻度の高いPhotoshopショートカットランキングTOP10
こんにちは。ひまみちです。 Photoshopで作業する際、ショートカットをどれだけ活用できるかによって、作業効率がかなり違ってきます。 今回は、私が普段PhotoshopでWebサイトをデザインする上で 使っている頻度 […]
Google OAuth 認証を簡単にしてトークンを取得するツールを作ったのソースコード
今回は「Google OAuth 認証を簡単に実行してトークンを取得するツールを作った」の内容です。 では以下ソースコードです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 |
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script> <div id="oauth"> <h2>OAuth認証</h2> クライアントID<br> <textarea id="o_client_id" rows="1" cols="80"></textarea><br> リダイレクトURL<br> <textarea id="o_redirect_uri" rows="1" cols="80"></textarea><br> スコープ<br> <textarea id="o_scope" rows="3" cols="80"></textarea><br> スコープ一覧は<a href="https://developers.google.com/identity/protocols/googlescopes">こちら</a> <br> <button id="oauth_btn">OAuth認証</button> </div> <div id="token"> <h2>TokenとRefresh Tokenを取得</h2> コード<br> <textarea id="t_code" rows="1" cols="80"></textarea><br> クライアントID<br> <textarea id="t_client_id" rows="1" cols="80"></textarea><br> クライアントシークレット<br> <textarea id="t_client_secret" rows="1" cols="80"></textarea><br> リダイレクトURL<br> <textarea id="t_redirect_uri" rows="1" cols="80"></textarea><br> <br> <button id="token_btn">Token取得</button> <button id="token_btn">Token取得</button><br> 結果<br> トークン:access_token<br> <textarea id="t_result_token" rows="2" cols="80"></textarea><br> リフレッシュトークン:refresh_token<br> <textarea id="t_result_refresh" rows="1" cols="80"></textarea><br> 有効期限:expires_in<br> <textarea id="t_result_expires" rows="1" cols="80"></textarea><br> </div> <script> var googleOAuth = {}; ( function(){ "use strict"; var oauthUrl = 'https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=', redirectUrl = '&redirect_uri=', scopeUrl = '&scope=', offlineUrl = '&access_type=offline&approval_prompt=force'; googleOAuth.init = function() { if ( !_params()[ 'code' ] ) { $( '#token' ).hide(); _textSet(); } else { $( '#oauth' ).hide(); $( '#t_code' ).val( _params()[ 'code' ] ); _textSet(); } }; function _textSet() { $( '#o_client_id' ).val( $.cookie( 'o_client_id' ) ); $( '#o_redirect_uri' ).val( $.cookie( 'o_redirect_uri' ) ); $( '#o_scope' ).val( $.cookie( 'o_scope' ) ); $( '#t_client_id' ).val( $.cookie( 'o_client_id' ) ); $( '#t_client_secret' ).val( $.cookie( 't_client_secret' ) ); $( '#t_redirect_uri' ).val( $.cookie( 'o_redirect_uri' ) ); } function _params() { var vars = new Object, params, temp_params = window.location.search.substring( 1 ).split( '&' ); for( var i = 0; i < temp_params.length; i++ ) { params = temp_params[ i ].split( '=' ); vars[ params[ 0 ] ] = params[ 1 ]; } return vars; } function _createOAuthUrl() { return oauthUrl + $( '#o_client_id' ).val() + redirectUrl + $( '#o_redirect_uri' ).val() + scopeUrl + $( '#o_scope' ).val() + offlineUrl; } $( "#oauth_btn" ).click( function( e ) { window.location.href = _createOAuthUrl(); }) $( "#token_btn" ).click( function( e ) { var postData = { 'code' : _params()[ 'code' ], 'client_id' : $( '#t_client_id' ).val(), 'client_secret' : $( '#t_client_secret' ).val(), 'redirect_uri' : $( '#t_redirect_uri' ).val(), 'grant_type' : 'authorization_code', 'access_type' : 'offline' }; $.post( "https://www.googleapis.com/oauth2/v4/token", postData, function( data ){ $( '#t_result_token' ).val( data.access_token ); $( '#t_result_refresh' ).val( data.refresh_token ); $( '#t_result_expires' ).val( data.expires_in ); } ).fail( function( data ) { $( '#t_result_token' ).val( data.responseJSON.error_description ); $( '#t_result_refresh' ).val( '' ); $( '#t_result_expires' ).val( '' ); }); }) $( '#o_client_id' ).change( function() { $.cookie( 'o_client_id', $( '#o_client_id' ).val() ); }); $( '#o_redirect_uri' ).change( function() { $.cookie( 'o_redirect_uri', $( '#o_redirect_uri' ).val() ); }); $( '#o_scope' ).change( function() { $.cookie( 'o_scope', $( '#o_scope' ).val() ); }); $( '#t_client_id' ).change( function() { $.cookie( 'o_client_id', $( '#o_client_id' ).val() ); }); $( '#t_client_secret' ).change( function() { $.cookie( 't_client_secret', $( '#t_client_secret' ).val() ); }); $( '#t_redirect_uri' ).change( function() { $.cookie( 'o_redirect_uri', $( '#o_redirect_uri' ).val() ); }); })(); googleOAuth.init(); </script> |
これもtextにコピーす […]