gettextで他言語対応 | php
12月 11th, 2011
index.phpに以下のように
<?php echo _(’Here is top page.’); ?>
xgettext index.php –from-code=utf-8 -o messages.pot
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE’S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR , YEAR.
#
#, fuzzy
msgid “”
msgstr “”
“Project-Id-Version: PACKAGE VERSION\n”
“Report-Msgid-Bugs-To: \n”
“POT-Creation-Date: 2011-12-11 18:13+0900\n”
“PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n”
“Last-Translator: FULL NAME \n”
“Language-Team: LANGUAGE \n”
“MIME-Version: 1.0\n”
“Content-Type: text/plain; [...]
mixiアプリ署名付きリクエスト認証のために OauthProvider を使ってみる | PHP
8月 26th, 2011
http://www.php.net/manual/en/class.oauthprovider.php
↓ここを見てやってみろと書いてあるので
・Writing an Oauth Provider Service
http://toys.lerdorf.com/archives/55-Writing-an-OAuth-Provider-Service.html
・Oauth Provier sample
http://svn.php.net/viewvc/pecl/oauth/trunk/examples
なんかできない気がしたので諦めた。
http://developer.mixi.co.jp/appli/spec/pc/require_servers/
一通りこちらのOauth.phpは読んだので、まねして、使うところだけ実装。
無事完了
・mixiからのリクエストのsignatureチェック
・mixiへのリクエストの作成。
やることはほとんど同じで。
基本機能はだいたいわかったので、明日は、インターフェイスのベース作成とデータ設計を。
来週中にはリリースできそう。でも次のツールも考えてるので。
mixi openid : RPからhttps://mixi.jp/へのSSL接続に失敗します。
7月 15th, 2011
http://developer.mixi.co.jp/openid/faq/
RPからhttps://mixi.jp/へのSSL接続に失敗します。どんな対策が必要ですか?
に従ってサーバーの証明書を更新します。
前もやったんだけど、メモってなかったのかな
http://insilico.jognote.com/blog/2008/08/13/curl-%E3%81%AB-https-%E3%81%A7%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B/
あれ?入ってた。
Open ID : associate type ASSOC_TYPE_HMAC_SHA1 これも
1月 23rd, 2011
ちょとこのversionと暗号化の組み合わせは何でしょう。
まぁライブラリが正解とは言えないので良いのです。
修正しました。やっとmixiでログイン成功~
if (OpenID::$versionMap[$version] == OpenID::NS_2_0) {
$this->message->set(’openid.ns’, OpenID::NS_2_0);
if(preg_match(’/mixi.jp/’,$this->opEndpointURL)){
$this->message->set(’openid.assoc_type’, self::ASSOC_TYPE_HMAC_SHA1);
[...]
OpenID : session_type DH_SHA1 or DH-SHA256 ? mixi.jpの罠 ?
1月 22nd, 2011
PearのOpenIDライブラリを使っているのですが、
mixi.jp の OpenIDを利用したところ以下のエラーが返された。
“Missing dh_server_public parameter in association response”
https://mixi.jp/openid_server.pl
データは取得出来ていたけど、dh_server_publicがかえってこなかった。。。
ようやく原因がわかりました。。。
session_typeには、
no-encryption
DH-SHA1
DH-SHA256
の3つがあるのですが、sslのときは、当然利用が必要です。
mixi.jpはhttps://につなぎに行くのですが
versionが
http://specs.openid.net/auth/2.0/server
のため
OpenID_Association_Request
のconstruct内で
versionから
session_type = DH-SHA256
と設定されました。
残念ながら mixi.jpはDH-SHA256では、
dh_server_public
enc_mac_key
が返されませんでした ; o ;
仕方ないのでmixiのときは、 DH_SHA1 にして無事認証完了^-^;
// Set defaults
$this->message->set(’openid.mode’, OpenID::MODE_ASSOCIATE);
if (OpenID::$versionMap[$version] == OpenID::NS_2_0) {
[...]
GData API with secure AuthSub
8月 1st, 2010
Authsub を secure=1 で
We have a certificate for your domain.
Upload new X.509 cert:
(Optional)
に
# Generate the RSA keys and certificate
openssl req -x509 -nodes -days 365 -newkey rsa:1024 -sha1 -subj \
‘/C=US/ST=CA/L=Mountain View/CN=www.example.com’ -keyout \
myrsakey.pem -out /tmp/myrsacert.pem
で生成した myrsacert.pem を登録して
zendのclient作成時に myrsakey.pem を設定してあげると警告が消えます!
$client = new Zend_Gdata_HttpClient();
// This sets your private key to be used to sign [...]
Yahoo OpenID Attribute Exchange をPHPで利用してみる!
7月 26th, 2010
まずは↓この通りにopenidを使ってみてください。
http://techblog.yahoo.co.jp/web/openid/10yahooopenid_rp/
↓次に、こちらPHPじゃないですが、画面遷移は同じです!
Yahoo OpenID AX Attribute Exchange!
http://techblog.yahoo.co.jp/web/openid/openid_axyahoo/
でphpは何を変えるかというと
try_auth.php(リクエスト用を修正です!)
require_once “Auth/OpenID/AX.php”;
でAXも利用可能に。
さらに function run()内の
$auth_request = $consumer->begin($openid);
の下あたりに AXを追加!
画像とfriendlyをnicknameとしてとってみる。
$ax_request = new Auth_OpenID_AX_FetchRequest();
$ax_request->add(
Auth_OpenID_AX_AttrInfo::make(’http://axschema.org/media/image/default’,
1,true,’image’));
$ax_request->add(
Auth_OpenID_AX_AttrInfo::make(’http://axschema.org/namePerson/friendly’
,1,true,’nickname’));
で早速Yahooへログイン!同じく try_auth.phpからYahooへリダイレクトされる
finish_auth.phpへ返されるパラメータに
["openid_ax_value_image"]=> string(54) “https://s.yimg.jp/images/login/openid/img/01/pic90.gif”
["openid_ax_value_nickname"]=> string(12) “ヤフーのID”
の2つが入ってきます。
だいたい問題ないので、次はphpのセッションを少し修正してサービスへ導入します。
Yahoo APIでOAuthを利用してみる 2
7月 20th, 2010
Yahooのウォッチリスト取得に成功しました!
appidは要らないみたいですね~。
http://www.php.net/manual/ja/oauth.examples.fireeagle.php
を参考にyahooで動くように変更してみました。
是非使ってみてください。
<?php
$req_url = ‘https://auth.login.yahoo.co.jp/oauth/v2/get_request_token’;
$callback_url = ‘このファイルのURLです!’;
$authurl = ‘https://auth.login.yahoo.co.jp/oauth/v2/request_auth’;
$acc_url = ‘https://auth.login.yahoo.co.jp/oauth/v2/get_token’;
$api_url = ‘http://auctions.yahooapis.jp/AuctionWebService/V2/closeWatchList’;
$conskey = ‘your_consumer_key’;// yahooで取得したconsumer key
$conssec = ‘your_consumer_secret’;// yahooで取得したconsumer secret
session_start();
// セッションの state の値が1の場合、次のリクエストには oauth_token の値が含まれているはずである
// やり直す時は stateを 0 にします。
if(!isset($_GET['oauth_token']) && $_SESSION['state']==1) $_SESSION['state'] = 0;
try {
// OAUTH_AUTH_TYPE_AUTHORIZATION に変更
// ヘッダーに Authorization: OAuth で送信します。
$oauth = new OAuth($conskey,$conssec,OAUTH_SIG_METHOD_HMACSHA1,OAUTH_AUTH_TYPE_AUTHORIZATION);
$oauth->enableDebug();
if(!isset($_GET['oauth_token']) && !$_SESSION['state']) {
// callback urlを指定。
[...]
php oauth-1.0.0 をインストール
7月 19th, 2010
http://php.net/manual/ja/book.oauth.php
http://pecl.php.net/package/oauth
#pecl install oauth-1.0.0
…
Build process completed successfully
Installing ‘/usr/lib/php/modules/oauth.so’
install ok: channel://pecl.php.net/oauth-1.0.0
configuration option “php_ini” is not set to php.ini location
You should add “extension=oauth.so” to php.ini
#vim /etc/php.d/oauth.ini
extension=oauth.so
#php -i
OAuth
OAuth support => enabled
PLAINTEXT support => not supported
RSA-SHA1 support => enabled
HMAC-SHA1 support => enabled
Request engine support => php_streams
source version => $Id: oauth.c 300018 2010-06-01 01:50:41Z datibbaw $
version => 1.0-dev
完了
Bid.lyで短縮URL
7月 10th, 2010
今さらですが、短縮URLをjsonpで取ってみました。
ApiDocumentation – bitly-api – bit.ly REST API method documentation – Project Hosting on Google Code.
http://bit.ly
でアカウントを作成してください。
ログインして以下のURLから
http://bit.ly/a/account
login
apiKey
を確認してご自身の情報を入れてください。
shortenで短縮します。scriptはこんな感じで。
<script type=”text/javascript”>
var Bitly = {
login: ‘ここにログインID’,
apiKey: ‘ここにAPIキーを’,
format: ‘json’,
shortenUrl: “http://api.bit.ly/v3/shorten”,
getUrl: function(){
}
shorten: function(longUrl) {
$.ajax({
type: “GET”,
[...]