Google Analyticator プラグインで WP テーマのカスタマイズが 500 エラーになる場合の対応(OAuth token)

前回の記事に引続き、WordPress 4.7 にアップデート前に現在の不安定な部分を解決したという記事です。

問題点

  • WordPress のテーマのカスタマイズを選択すると、500 エラーが表示される。
  • 通常のブログの閲覧、投稿においてはエラーは発生していない。
  • サーバーのエラーログには下記のようなログが記録されている。
2016/12/27 22:31:16 [error] 10890#10890: *799703 FastCGI sent in stderr: "PHP message: PHP Fatal error:  Uncaught Google_AuthException: Error refreshing the OAuth2 token, message: '{
  "error" : "invalid_grant"
}' in /…/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_OAuth2.php:288
Stack trace:
#0 /…/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_OAuth2.php(247): Google_OAuth2->refreshTokenRequest(Array)
#1 /…/wp-content/plugins/google-analyticator/google-api-php-client/src/auth/Google_OAuth2.php(225): Google_OAuth2->refreshToken('1/AHQgt42tqijcP...')
#2 /…/wp-content/plugins/google-analyticator/google-api-php-client/src/service/Google_ServiceResource.php(167): Google_OAuth2->sign(Object(Google_HttpRequest))
#3 /…/wp-content/plugins/google-analyticator/google-api-php-client/src/contrib/Google_AnalyticsService.php(784): Google_ServiceResource->__call('list', Array)
#4 /…/" while reading response header from upstream, client: …, server: blog.oyasu.info, request: "POST /wp-admin/admin-ajax.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php-fpm/php-fpm.sock:", host: "blog.oyasu.info", referrer: "https://blog.oyasu.info/wp-admin/"

“Google Analyticator プラグインで WP テーマのカスタマイズが 500 エラーになる場合の対応(OAuth token)” の続きを読む

Windows 10 Insider Preview 10525 で Google Chrome のクラッシュ解決法

2015/09/02追記:
この記事は Chrome 44 以前の内容です。Chrome 45 では問題なく動作します。


8月19日に Windows 10 Insider Preview 10525 がリリースされました。

しかし、アップグレード後に Chrome が「強制終了しました」と表示されて利用できなくなってしまいます。

[H27.08.19] Windows 10 10525 Chrome Crash “Windows 10 Insider Preview 10525 で Google Chrome のクラッシュ解決法” の続きを読む

ConoHa で WebSocket 接続を試みるも 502 エラーが出現

またまたMacbook が欲しいために「ConoHa」の API に関する記事を公開します。

タイトルにもありますが、今回は上手くいかなかった例を紹介します。
どなたか詳しい方がいらっしゃれば、アドバイスをいただけると嬉しいです。

挑戦したいこと

先日更新した記事で、ConoHa には noVNC コンソールと HTTP のシリアルコンソールがあると紹介しました。

API ドキュメントにはあるものの紹介していないコンソールがありました。

WebSocket については Wikipedia にもありますが、サーバーとクライアントを常時接続するようなプロトコルで、プロキシサーバーが必要な環境でも接続できるのが特徴です。

WebSocket 接続用 URL の取得

前回紹介した PowerShell のスクリプトの

{"os-getVNCConsole":{"type": "novnc"}}

{"os-getSerialConsole":{"type": "serial"}}

に書き換えるだけです。

$apiUser = "APIユーザー名"
$apiPassword = "APIパスワード"
$tenantId = "テナントID"
$identityServiceUrl = "https://identity.tyo1.conoha.io/v2.0"
$computeService = "https://compute.tyo1.conoha.io/v2"
$uuid = "VPS設定-UUID"
# 有効な期間のトークンがあれば
$token = "" 

# トークンの取得
function getToken([string] $tenantId, [string] $apiUser, [string] $apiPassword, [string] $authurl){
    $body = '{"auth":{"passwordCredentials":{"username":"' + $apiUser + '","password":"'+$apiPassword+'"},"tenantId":"'+$tenantId+'"}}'
    $url = $identityServiceUrl+"/tokens"
    $result = Invoke-RestMethod $url -Method POST -Body $body
    return $result
}

# コンソールの URL 取得
function getWebSocketConsole([string] $tenantId, [string] $uuid, [Hashtable] $tokenHeader, [string] $computeService){
    $body = '{"os-getSerialConsole":{"type": "serial"}}'
    $url = $computeService + "/" + $tenantId + "/servers/" + $uuid + "/action"
    $result = Invoke-RestMethod $url -Method POST -Body $body -Headers $tokenHeader
    return $result.console.url
}

# 処理
if ($token -eq "") {
    $mytokens = getToken $tenantId $apiUser $apiPassword $identityServiceUrl
    $token = $mytokens.access.token
}
$tokenHeader = @{"X-Auth-Token" = $token}
$url = getWebSocketConsole $tenantId $uuid $tokenHeader $computeService
# URL 表示
Write-Output $url

成功するとこのような wss で始まる WebSocket の URL が得られます。

wss://console.tyo1.conoha.io/?token=○○

WebSocket クライアントからの接続

とりあえず WebSocket の接続サンプルを使うことにしました。

JavaScript

WebSocket の公式サイトにテストがあったので試してみました。

WebSocket の URL を入力して接続しても、ERROR:undefined と表示されてしまいました。
Creating your own test を自分で書き換えても同様のエラーが発生しました。

テストサーバーである、
ws://echo.websocket.org/
wss://echo.websocket.org/
は問題なく接続できるので、回線が WebSocket を制限しているわけでもなさそうです。

ブラウザの開発者ツールで確認してみると、502 Bad Gateway エラーが発生しているようです。

[H27.07.17]ConoHa WebSocket 502

C#

こちらのブログを参考に、C# での確認も行いました。

こちらも、ws://echo.websocket.org/ や wss://echo.websocket.org/ は問題なく接続できました。
違うネットワークから接続してもだめでした。

サポートに問い合わせてみた

困ったので、ConoHa のサポートに問い合わせてみました。

回答は「APIで接続用URL取得後の動作については案内が困難」とのことでした。
クライアントの問題や利用者の回線の問題も考えられるため、そこまではサポートできないというのも納得できます。

今回は、こうしてブログに書くことによって、誰かの参考になればと思います。

おわりに

現在友達の紹介キャンペーンを実施しており、こちらのリンクから ConoHa に登録していただくと、1000円分のクーポンがもらえますので是非登録し、試してみてください。

SKYSEA 環境で Chrome 43 更新後ユーザー設定ファイルを読み込むことができない

Google Chrome 43 に更新すると、一部の環境でエラーが発生するようです。

ユーザー設定ファイルを読み込むことができません。一部の機能が利用できない可能性があります。また、設定への変更は保存されません。

このような投稿は Google Chrome ヘルプ フォーラムでもいくつか投稿されており、Twitter でもそのようなツイートを見かけました。

原因は上記のフォーラムでも書いていますが、「SKYSEA Client View」との相性が悪いようです。

この件については、SKYSEA Client View 保守契約ユーザー用のWebサイトに

2015/05/21【Ver.10.000.10k / 10.100.09d】Windows版 Google ChromeをVer.43にアップデートすると、Chromeの起動時にエラーが発生するようになる問題

と書かれており、SKYSEA Client Viewを更新すると問題は直るようです
SKYSEAを利用していないですし、保守契約も結んでいないため詳しくはSKYSEAのページをご確認ください。


(2015/6/5追記)

また、SKYSEA にはシークレットウインドウを制限する機能があります。
これを有効にしていると、シークレットウインドウが表示されないのですが、これはバグではありませんので設定を一度確認してみてください。


以下、この記事とは関係ない独り言です。

最近、JRの車内広告でSKYSEAを見かけるという意識はありましたが、どのようなソフトかまでは意識していませんでした。
まさか、Chromeとの相性問題で知ることになるとは思っていませんでした。

SKYSEAの開発元であるSKY株式会社は、学生だとSKYMENUの会社というと分かりやすいかもしれません。
JSkyB(スカパーのスカの部分)の会社とは一切関係ないようです。

MSI製マザーボード Haswell Refresh で再起動ができない問題 解決法

自分のパソコンではないのですが、最近自作したパソコンが「電源OFFからの起動はできるが再起動できない」という問題があったので調べてみました。

状況の確認

ハードウェア

“MSI製マザーボード Haswell Refresh で再起動ができない問題 解決法” の続きを読む