なんだかカフェとかレストランとかにある天井の中に設置されているスピーカーを見ると欲しくなります。 「家をカフェっぽくしたい!」 ということで今回は天井に穴を開けることが出来ない家でも天井にスピーカーをつけたい人用の商品を […]
月: 2017年2月
[Ruby on Rails]数値型(Fixnum)のメソッドを確認する11
next succとの違いはIntegerクラスのインスタンスメソッドであること。 upto mapとかと同じイテレータークラス 実行した数値から引数の値まで繰り返す Integerクラスのインスタンスメソッド [cra […]
アリミノの洗い流さないトリートメント『アクアモイスチュア』で髪のまとまりようがすごいいいい
こんにちは。ひまみちです。 かたい・くせ毛・パサつきやすい・広がるなどの扱いづらさMAXな特徴をもつ私の髪の毛ですが、 とんでもなく髪の調子が良くなる洗い流さないトリートメントに出会いました。 それがこれです。 アリミノ […]
[FEH]ファイアーエムブレムヒーローズの低レアリティキャラを使う
任天堂が満を辞してリリースしたスマホゲー「ファイアーエムブレムヒーローズ」を割と楽しく遊んでいます。 ゲーム内では「ランダム型アイテム提供方式」でキャラクタが手に入ります。 レアリティ5がでなくても残念がらないでください […]
[Ruby on Rails]数値型(Fixnum)のメソッドを確認する10
to_int to_i 数値型をそのまま返す Integerクラスのインスタンスメソッド C言語ではto_intはto_iのシノニムとなっている。
1 2 3 4 5 |
> 1.to_i => 1 > 1.to_int => 1 |
参考 […]
お昼ご飯を200円代で済ませる
こんにちは。ひまみちゴリ美です。 最近、節約のためにランチを200円代(つまり300円以内)で済ませる日々を送っています。 今回は、私がよくやる200円代ランチのメニューをご紹介します。 よく食べる男性には、このメニュー […]
[Ruby on Rails]数値型(Fixnum)のメソッドを確認する9
odd? 奇数ならtrue Fixnumクラスのインスタンスメソッド
1 2 3 4 5 |
> 1.odd? => true > 2.odd? => false |
even? 偶数ならtrue Fixnumクラスのインスタンスメソッド [crayo […]
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にコピーす […]