ラベル Blogger の投稿を表示しています。 すべての投稿を表示
ラベル Blogger の投稿を表示しています。 すべての投稿を表示

2018年9月6日木曜日

Blogger が https + カスタムドメインに対応したのでやってみました

https://blog.kakakikikeke.com

でアクセスできるようになっていると思います
昔のアドレス https://kakakikikeke.blogspot.com/ にアクセスするとリダイレクトされると思います

設定は簡単で管理ページから「設定」->「基本」でカスタムドメインのアドレスを設定し、その少し下にある「HTTPS の使用」を「はい」にするだけです
blogger_https1.png

カスタムドメインにするのは DNS サーバ側の CNAME の伝播に少し時間がかかるので、それが反映されるまで待つ必要があります
DNS の伝播が完了した時点で http でカスタムドメインでアクセスできるようになります
またこの段階で古いアドレスへのアクセスはすべてリダイレクトされるのでアクセスできなくなります

更に https にしたい場合は「HTTPS の使用」を有効にします
この作業に少し時間がかかります
自分は 15 分ほどで完了しました
これを有効にしている間は完全にブログサイトにアクセスできなくなるので注意してください

なぜなら

  1. 既存の xxx.blogspot.com へのアクセスはカスタムドメインにリダイレクトする
  2. http のカスタムドメインにアクセスしようとする
  3. http -> https のリダイレクトが走る
  4. https が有効になっていないのでエラーになる

という感じです
まぁ仕方ないという感じです

で https 適用後に証明書を確認したら Let's Encrypt の証明書でした
blogger_https2.png

おそらく更新作業などは勝手にやってくれるはずです、、
証明書の更新間隔は 3 ヶ月になっています
たぶんですが更新時に証明書の入れ替えが発生するのでその間はサイトにアクセスできないか証明書のエラーが表示されるはずです
一瞬だと思うのでほぼ見れないと思いますが
もしくは Google 先生のことなのでそうならないように対策してくれているかもしれません

何にせよこれが無料で使えるのは、さすが Google 先生かなと思います

おまけ

StackEdit はカスタムドメイン設定後も問題なく使えました

2014年11月4日火曜日

Bloggerの記事を検索してpostIdを取得するスクリプト

概要

Bloggerに投稿した記事にはそれぞれを識別するためのIDが振られます
IDは管理画面でも確認することができますが、結構面倒です
自分はStackEditを使って記事を投稿、編集していて既存の記事を編集する場合にこのIDが必要になります
毎回UIで確認するのが面倒だったのでrubyからコマンドベースで確認できるようにしました

環境

  • Mac OS X 10.8.5
  • Ruby 2.1.2p95

ソースコード

https://gist.github.com/kakakikikeke/9ffc5427cf7f42a48ec5

使い方

上記のコードをgistから取得してapi_keyblog_idの部分を書き換えてください

そして

ruby get_post_ids.rb Blogger

と実行します
引数が1つ必要で、1つ目に指定したキーワードを元に記事を絞り込んで絞りこまれた記事のIDを表示します
上記の例では「Blogger」という単語を含む記事IDを表示します

BloggerのAPIの仕様で検索対象がタイトルも記事もURLも含まれるので1つに絞込みたい場合は、タイトル全文をキーワードとして指定するといいと思います

だいぶニッチですが、もし使う機会があれば使ってください

2014年9月11日木曜日

Bloggerの使い方メモ

PS. 20170712

結局 StackEdit からは HTML で送信して Blogger のテーマの HTML を編集して <head> タグに以下を入れるのが一番良いっぽいです

<script src="https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js?lang=css&amp;skin=sunburst"></script>

https://github.com/google/code-prettify/blob/master/docs/getting_started.md

PS. 20170208

結論として以下だけを行えばキレイに表示されることがわかったので以下だけ実施するようにしています

  • 投稿時に custom template を選択
  • body タグ内にある <div class="container"> を削除する

post_setting_from_stackedit.png

これで stackEdit で編集しているときのプレビューと同じ表示方法で投稿されます
過去の記事に関しては上記の設定で再投稿し直す必要があるので素直に諦めましょう

概要

BloggerでSyntaxHighlighterを使うネタを過去に投稿して、その後StackEditを使うネタを投稿して、更に投稿はしていないがstackEditでprettifyを使うようになったりして、、、
いろいろとごちゃごちゃしてきたので自分なりの設定方法と使い方をまとめておきました

各種設定と使い方

テンプレート設定

Blogger -> テンプレート -> HTMLの編集から以下を追記

  • </head>の直前
    SyntaxHighlighterを有効にする
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'/>
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushRuby.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPHP.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js' type='text/javascript'/>
<script language='javascript' type='text/javascript'>
 SyntaxHighlighter.config.bloggerMode = true;
 SyntaxHighlighter.all();
</script>
  • <title>の直後
    stackEditからの投稿がprettifyになっているのでスタイルだけ適用
<link href='https://raw.githubusercontent.com/google/code-prettify/master/styles/sunburst.css' rel='stylesheet' type='text/css'/>

P.S 20160512
sunbrust.css の URL が 404 になっていたので Github へのリンクに変更しました

https://google-code-prettify.googlecode.com/svn/loader/skins/sunburst.css

https://raw.githubusercontent.com/google/code-prettify/master/styles/sunburst.css

使い方

stackEditから投稿する場合

コードスニペット

コードを挿入する際にバッククオート3つを使うがその後ろに言語名を指定すること
```html
lisp等の拡張には対応していないためSyntaxColorがうまく適用されない場合はxmlを指定してSyntaxColorさせないようにする(とりあえず白黒になる)

画像の挿入

画像はstackEdit上にドラック&ドロップすればGoogle+上の保存されるのでそこから画像挿入すればOK

YAML Front Matter

冒頭のymlのラベル定義

---
tags: ["WebService", "随時更新メモ", "技術"]
---


Table of Contents[TOC]は必ず入れる

その他のMarkdownは特に気にせず使用してOK

Google+

tackEditから投稿するとGoogle+では自動で共有されないので、もしGoogle+に共有したい場合はBloggerの管理画面から共有すること

シンタックスハイライトの設定

# -> Settings -> Extentsions -> Markdown Extra -> Syntax highlighter -> Prettify

普通に投稿する場合

シンタックスハイライトの設定

コードを挿入する場合はSyntaxHighlighterを使う
<pre class="brush: java"></pre>
指定可能な言語はJava, Ruby, PHP, CSSなのでその他に必要であればテンプレートにJavaScriptの読み込み定義を追記する
言語がなくてどうしてもSyntaxHighlighterが使えない場合は以下を使用する(基本はしようしない)
<pre style="background: #fff; border: dashed 5px #ccc; color: black; line-height: 1.3em; margin: 0px; padding: 5px;white-space: pre-wrap;"></pre>

その他見出し

見出しは
<span style="color: #6aa84f;"></span>

ブロックは
<div style="padding-left:2em;"></div>
<div style="padding-left:3em;"></div>

リンク、画像、リスト等Bloggerで使える機能は普通に使ってOK
ラベルは適切なものを選択して必ず付与する
TOCは入れられない

タイトルの付け方

英語が入る場合、タイトルを元にBloggerが勝手にURLを生成してくれます
なので英語がタイトルに入る場合は必ず単語の左右にスペースを入れるようにする
そうすることでURLがいい感じになる(英単語の間にハイフンを入れてくれる)

2014年7月15日火曜日

BloggerAPIv3をrubyから使ってみた

■環境
Mac OS X 10.8.5
Ruby 2.1.2p95
Gem 2.2.2

■事前準備
  • Googleアカウントの作成
  • Google Developer Consoleでプロジェクトの作成
  • RubyおよびGemのインストール
※ここは説明を省略します

■作成したプロジェクトが持つアクセスキーに紐づくリダイレクトURLを設定する
何かややこしい書き方をしていますが、BloggerAPIv3は認証時にOAuth2を用いるためリダイレクトURLを設定する必要があります

  1. https://code.google.com/apis/console/b/0/?noredirect#project:[project_number]:access にアクセス
  2. [project_number]にはDevelopers Consoleで確認できるプロジェクトの番号を入力してください
  3. 左メニュー上部に現在のプロジェクトを切り替えるプルダウンがあるので作成したプロジェクトに切り替え
  4. 左メニューの「API Access」を選択
  5. 「Client ID for web applications」用のアクセスキーが存在するか確認します、ない場合は「Create another client ID」から新規にアクセスキーを作成
  6. 新規アクセスキー作成時に「Redirect URIs」を「http://localhost:9292」に設定
  7. 作成が完了したら一覧に戻り作成したアクセスキーに「Redirect URIs」が設定されているか確認

ここでリダイレクトURLに localhost:9292 を設定しているのは、使用しているgoogle-api-clientのgemが勝手にコールバックしてくれるURLになります
アプリ側(google-api-client を使用した ruby アプリ)から指定するリダイレクトURLとDevelopers Console側に登録したアクセスキーが持つリダイレクトURLは同一である必要があるためです
またこの作業はURLを見てもわかりますが旧Developer Consoleで実施する必要があります

以下のような感じになっていればOKです

■Google Developers Consoleから認証用のjsonファイルを取得する
  1. https://console.developers.google.com/ にアクセス
  2. Googleアカウントでログイン後、プロジェクトの一覧から作成したプロジェクトを選択
  3. 左メニューからCredentialsを選択
  4. OAuthの「Download JSON」をクリックし適当な位置にダウンロード
  5. ダウンロード後ファイル名をclient_secrets.jsonに変更、サンプルソースコードと同じディレクトリに保存

ここでダウンロードしたjsonファイルを元にgoogle-api-clientが勝手にOAuth2認証を実施してくれます

以下の箇所からダウンロードするイメージです

■google-api-clientのGemインストール
gem install google-api-client

■サンプルソースコード
先ほどダウンロードした認証用のJsonファイルがと同じ階層に以下のサンプルコードを配置してください

# -*- coding: utf-8 -*-
require 'google/api_client'
require 'google/api_client/client_secrets'
require 'google/api_client/auth/installed_app'
require 'json'

blog_id = "Please input your blogger_id"

client = Google::APIClient.new(
  :application_name => 'Sample Blogger API App',
  :application_version => '1.0.0'
)
blogger = client.discovered_api('blogger', 'v3')

# この処理でダウンロードしたアクセスキーが記載されたJsonファイルを読み込む
client_secrets = Google::APIClient::ClientSecrets.load

flow = Google::APIClient::InstalledAppFlow.new(
  :client_id => client_secrets.client_id,
  :client_secret => client_secrets.client_secret,
  :scope => ['https://www.googleapis.com/auth/blogger']
)
# アプリを認証許可するまでここでwaitする
client.authorization = flow.authorize

# APIを実行する
result = client.execute(
  :api_method => blogger.posts.list,
  :parameters => { 'blogId' => blog_id }
)

# return Google::APIClient::Schema::Blogger::V3::PostList
# puts result.data.class
# puts result.data.methods
# puts result.data.to_json

json = JSON.parse(result.data.to_json)
json['items'].each do |item|
  puts "id : " + item['id']
  puts "title : " + item['title']
  puts "content : " + item['content']
end

blog_id = "Please input your blogger_id"
の部分に自分のbloggerのIDを入力してください
blog_idはbloggerの管理UIにログインしてURLに表示される番号を入力してください

ruby test_blogger_api.rb

と実行するとリダイレクトURLに設定したlocalhost:9292のページが表示されアプリからのアクセス承認を求められます
その後、ターミナルに戻るとポストの一覧が結果がされていると思います
1回の取得で最大10件しか取得できないので次のページを取得する場合はレスポンスのobjectをページネートして次の10件を取得してください
(たしか、resultオブジェクトにページネートできるメソッドが実装されていたと思います)

以上です
ポイントはOAuth2.0を使っているのでプロジェクトに作成するアクセスキーにちゃんとRedirect URLを設定するところでしょうか
あとはRubyのリファレンスが少ないのでmethodsで使えるメソッド名を確認したり参考サイトにも紹介しているAPIExplorerで実際のJsonレスポンスを見てレスポンスオブジェクトへのアクセス方法を自分調べる必要がありました

■参考サイト
google-api-client本家サイト
https://developers.google.com/api-client-library/ruby/start/get_started?hl=ja

Google API Explorer
ここを参考にしてexecuteするリクエストのパラメータ等は調べられると思います
https://developers.google.com/apis-explorer/#p/blogger/v3/

2014年3月14日金曜日

This post is test article to blogger from stackEdit

テスト投稿

この記事はStackEditから投稿しているテスト記事です

背景

Bloggerの記事をHTMLで記載するのがめんどうになってのでmarkdownで投稿できる方法がないか調べたところStackEditというサービスから投稿できるようなので試してみた

所感

  • markdownで記載できるのは素晴らしいが投稿した記事を編集するときには結局HTMLを編集しなければならないので編集もmarkdownでできるといいと思った
    • postIDを指定して投稿するとstackEditからちゃんと記事の更新も行える
    • ただ更新するときにmarkdownを毎回stackEditで開かなければいけないのと毎回PublishOnで投稿しないといけないのが手間(気軽に更新できない)
    • 気軽に更新する場合は直接bloggerの記事一覧から編集してもいいかもしれない
    • markdownとblogger側のHTMLのデータの整合性を保つのが難しそう
  • 更新の手間を考慮すると初回投稿時はstackEditを使って更新は直接bloggerからでもいいかもしれない
  • そもそもbloggerがmarkdownをサポートするのが一番いい
  • 自分の場合はblogger側のスタイルシートが糞なのでmarkdownで書いた記事は文字が小さくかつ色合いもないので非常に残念な感じになってしまった
  • 投稿やGoogle Driveのインポートに時間のかかるときがあり投稿がすぐに行えないことがあった
  • 画像の挿入はできないとばかり思っていたがどうやらできるようで、stackEditの編集画面の直接画像をドラック&ドロップすればGoogle+と連携して画像をアップロードして挿入できる
  • stackEditからアップロードした画像はGoogle+のフォトに「Drop box」というアルバム名が作成されその配下で管理される
  • 画像のアップロードのGoogle+との連携はできているが投稿時のタイムラインに表示する連携ができていないようで、stackEditから投稿するとGoogle+上に表示されないのが残念

投稿手順メモ

  • 右上のファイルマークからNew Documentで新しいドキュメントを作成する
  • タイトルを記入する
  • 左ペインでマークダウン記法を使って記事を作成
  • 作成できたら左上の「#」から Publish On -> Blogger を選択
  • BlogURL を入力する
  • 記事の更新を行いたかったら記事のIDを入力する(記事のIDはpostIDと呼ばれ、bloggerの管理画面から記事の一覧でタイトルの上にカーソルを持って行くとリンク先のURLにpostIDが含まれている)
    • 更新するとタイトルを表示している部分にbloggerのアイコンがバシバシ追加されていく
    • 更新された分でだけアイコンが増えるので更新回数を確認することができる
  • OKを押すとGoogleアカウントへのアプリアクセス許可が出るのでOKを押下
  • 右上のタイトル部分にbloggerのアイコンが出てくれば投稿完了
  • 作成し終わった記事は保存する
  • 保存する場合はローカルにmarkdown形式やhtml形式で保存できる
  • 左上の「#」から Save as … とたどれば保存可能
  • またGoogle Driveとも連携しているので作成したmarkdownをGoogle Drive上に保存しておけば再度stackEditへのインポートするのもGoogle Driveから行うことができる
  • Google Driveへのインポート方法は同じく左上の「#」から SYNCHRONIZE -> GoogleDriveとすれば記事投稿と同じようにアプリ認証画面がでてきて許可すればGoogle Drive上に保存される

Written with StackEdit.

2013年1月22日火曜日

【Google】BloggerのAPIを使ってブログ記事を取得する方法

■手順
1. blogIDを取得する
Bloggerのダッシュボード画面から取得できます
ダッシュボードにアクセスした際のURLのにあるblogID=XXXXXの部分
http://support.google.com/blogger/bin/answer.py?hl=en&answer=42191

2. Google API Keysを取得します
Google Accountの登録が必要です
Google Accountを登録したらGoogle API CosoleからBlogger API v3のAPI Keyを取得します
https://code.google.com/apis/console/

※どうやらBlogger API v3のAPI Keyは申請フォームから申請しないと取得できないみたいです
申請が通るとメールでAPI Keyの連絡がくるそうです

3. リクエストを生成する
https://www.googleapis.com/blogger/v3/blogs/{blogID}/posts?fetchBodies=true&key={YOUR_API_KEY}

4. 実行する
生成したリクエストをブラウザをたちあげてURLに貼り実行すればOK
Linux環境があるならばurlコマンド等でも代用出来ます

5. 次のページを取得する
https://www.googleapis.com/blogger/v3/blogs/{blogID}/posts?fetchBodies=true&maxResults=10&pageToken={pageToken}&key={YOUR_API_KEY}
どうやら1ページで取得できる最大の記事数は10件なようです(maxResultsで指定できます)
なので、pageTokenパラメータで次のページに遷移してまた10件と取得しかないと全件取得できません
pageTokenはレスポンスの「nextPageToken」として返却されるのでそれをレスポンスから解析後、次のページにいくためのリクエストを生成するときに埋め込む必要があります

■その他
Blogger API v3.0 リファレンス
https://developers.google.com/blogger/docs/3.0/reference/index

SDK一覧
https://developers.google.com/blogger/docs/3.0/libraries

リクエスト生成ツール
以下のURLでblogIDからAPIをサンプルで実行することができます
https://developers.google.com/blogger/docs/3.0/libraries
Googleってこういうのあるから素敵ですよね


あと実はBlogger APIを使おうとしたのは記事のアクセス数でソーティングできないので、自分で作ろうと思っていたのですが、どうやらアクセス数はAPIでも取れないみたいで結局あきらめましたw
残念・・・

2012年12月20日木曜日

ブログでソースコードをきれいに見せる方法【blogger SyntaxHighlighter】

P.S 20140811
文章の体裁を整えました
他の言語のhighlight方法を追記しました

①各ブログサービスで直接HTMLを編集できるページに移動
bloggerの場合はテンプレート→HTMLの編集で編集画面に遷移できます

②HTMLの<head>タグ内の最後に以下の行をすべて追加し保存
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'/>
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js' type='text/javascript'></script>
<script language="javascript" type="text/javascript">
 SyntaxHighlighter.config.bloggerMode = true;
 SyntaxHighlighter.all();
</script>

③class要素付きの<pre>タグで囲めば完了
<pre class="brush: java">
</pre>
で囲みます
以下サンプルです
public static void main (String[] args) {
    System.out.println("test");
}

■注意事項
  • 今回はJavaを使用しましたが、他にもいろいろなソースコードを表示するためのスタイルが用意されています
  • shBrushJava.jsの部分をshBrushRuby.jsに変更して等追記することで他の言語に対応可能です http://javascript.webcreativepark.net/library/syntaxhighlighterにbrushのリストが記載されております
  • bloggerの場合、プレビューまで表示しないと反映されているかどうかがわかりません(HTMLと作成の切り替えだけではわかりません)
  • 直接CSSを編集する方法はここでは紹介しませんが、bloggerでも頑張ればできるようです

■参考サイト

2012年7月4日水曜日

他のGoogle AdsenseのアカウントとBloggerが連携されているか確認する方法

■背景
Bloggerで持っているアカウント(A)とAdsenseで持っているアカウント(B)が異なっておりBlogger上に掲載する広告をBのAdsenseアカウントの情報で掲載したかった
AでAdsenseのアカウント持っていない理由としては昔Adsenseに申し込みを行ったのだが利用規約に違反していたらしく凍結になってしまったためやむなくBのアカウントと連携することになった

■確認方法
手順1
AのアカウントでBloggerの管理画面にログインし「収益」からBのアカウントと連携する設定を行います
ここでは連携方法については簡単に述べますが
「AdSense アカウントの切り替え」から「別の AdSense アカウントを使用する」のほうにBのアカウントのメールアドレスと郵便番号を入力するとBのGmailにメールが届くのを確認できればOK







※基本的にはここまでできていれば連携できているはずなのですが、今回はこれが本当に連携できているのかをBのアカウントの視点から確認します

手順2
BのアカウントでGoogle Adsenseへログイン
「パフォーマンスレポート」タブをクリック
左メニューから「サイト」をクリック
現在このBのアカウントで広告設定しているサイトの一覧が下部に表示されるので、その中にAのBloggerのサイトが記載されていることを確認する







「ホーム」「アカウント設定」から
一番下「アクセスと認証」でBlogger.comがサードバーティアクセス権に記載されていることを確認する





上記2つが設定されていればBloggerとAdsenseの連携は問題なく行われています
UIは2012/07/04時点でのものになるので、そこはあしからず

2012年4月25日水曜日

Bloggerでソースコードをスタイルシートで綺麗に見せる方法【prettify.css, prettify.js】

Bloggerの場合を書きますが、おそらく普通のブログサイトでもテンプレート的なHTMLさえ編集できれば使えると思います。

①Bloggerにログイン後、左メニューから「テンプレート」→「HTMLの編集」でHTMLを編集
(このとき警告のようなダイアログが出現するが「続行」をクリックする)

②HTMLの編集画面になった以下の2箇所にソースコードを追加する

1. <head>タグの中に以下の1文を追加
---
<link rel="stylesheet" href="http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.css"/>
---
⇒「<head>」などで検索するとすぐに該当の場所に飛べます

2. </body>の終了タグの直前に以下の2文を追加
---
<script src="http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js"></script>
<script>prettyPrint();</script>
---
⇒「</body> 」で検索してすぐ上に貼り付けてしまいましょう

③対象のソースコードを以下のタグで囲ってみましょう
---
<pre class="prettyprint linenums">
XXX
</pre>
---

一応これでできるはず・・・自分はこのスタイル背景とかが綺麗に表示されなかったのでちょっとやめてしまいましたがw
できない場合は対象のcssとjsファイルが存在しているか確認するといいかと思います
http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js
http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.css

まぁ書いていて思ったんですが、
なんか「シンタックスハイライト」とか「Syntax Highlighter」とかで検索するともっと良い感じの情報に出会えるかもしれませんw
あとは自分で<pre>に対してスタイルシート適用して作っちゃうとかねw

まぁいろいろと応用が効く方法だと思ったので、一応メモがてらに書いておきました。
参考までにー