fc2ブログ

レジストリエディタの操作

レジストリを操作するには
レジストリエディタを使います

このエディタの出しかたは
スタートボタン > ファイル名を指定して実行 >
regedit
で開けます

レジストリを編集する時に失敗すると
再インストールすることになります

このため、レジストリを編集する前に正常な状態のバックアップをとっておきましょう

レジストリエディタではキー単位で
エクスポートできます

エクスポート形式はいくつかありますが

reg形式なら
後でファイルをダブルクリックするだけで元に戻せます

ただし、全体のレジストリのバックアップには向きません

これは
インポートする時に
アクセス権の影響で元に戻せないところがでてきて
エラーが多発
結果として正常に戻らないということがあるからです

このため、全体バックアップするには
windows 付属のバックアップツール

市販のツールでシステムごとリカバリしたほうが安全です

また、バックアップしていなくても
windows 7
windows 2008
の場合なら
10日に1回
レジストリバックアップされるので
そのときのファイルが
%SystemRoot%System32%config%RegBack
に保存されます

10日に1回なので、最長でも10日までになります
最後の可能性の1つとして覚えておくといいかもしれません
スポンサーサイト



Windows レジストリ

レジストリは windows OS のコアとなる設定です

認証情報、
ユーザ履歴
カスタマイズ設定など
いろいろな情報が格納されています

レジストリは
キーと値で構成され

キーはフォルダ
値はファイルのようなかんじです

windows には5つの定義済みキーがあり
これはルートキーといいます

HKEY_CURRENT_CONFIG (HACC)
ハードウェア関連情報

HKEY_CLASSES_ROOT (HKCR)
拡張子とプログラムの関連づけ情報

HKEY_LOCAL_MACHINE (HKLM)
PC全般の構成情報

HKEY_USERS (HKU)
全ユーザーの関連情報

HKEY_CURRENT_USER (HKCU)
ログイン中のユーザ関連情報

構造上は
HKLM と HKU が上位

HKCR、HKCU、HKCC はこの下になります

NTLM認証

NTLM認証の種類として

NTMLv1認証
NTMLv2セッションセキュリティ
NTMLv2認証

があります

NTMLv1認証には
LMハッシュ、LM認証の7文字後と暗号化の問題がないので
LM認証に比べれば強度はあがります

ツールによる
LM認証、NTLM認証のクラックの場合

脆弱なLM認証レスポンスがクラックされ
クラックされたパスワードの英大文字小文字の組み合わせ
をかえてNTML認証レスポンスがクラックされます

このためLM認証とNTLM認証を同時に使ってしまうと
LM認証なみの強度へと弱体化するので注意

NTLMv2認証
NTMLv2セッションセキュリティ
の場合
クライアントチャレンジが導入されている
これは
クライアント側で毎回生成されるので外部から強制的に固定にできない
また、ネットワークにも流れないので
値をしることができないようになっている

このため、オフライン攻撃には強くなっている


パスワードをクラックされたくないなら対策として
LMハッシュを保存しない
(Vista 以降はLMハッシュを保存しないようになった)

LM認証は使わない
(Windows 2003 server からは
 NTLMレスポンスだけ送信する)

NTMLv2認証を使う
(Vista 以降は自動的にこちらを使う
ただし、古いNASだと対応していなくてつながらないということもあり)

ということが重要

テーマ : インターネット
ジャンル : コンピュータ

windowsのネットワーク認証

Windows がネットワーク認証に使うおもな認証方法は
LM認証
NTLM認証
kerberos認証

windows のクライアントから共有サーバーへ接続するときに
ネットワーク認証が行われます

ネットワーク認証はサーバーへの認証要求から
始まって
サーバーがチャレンジを作成して
クライアントに送信します

クライアント側では
受信したチャレンジとアカウントのパスワードハッシュから
レスポンスを計算し、発信します

つぎにサーバー側で
送られてきたレスポンスと
サーバーが管理しているパスワードハッシュから計算したレスポンスが
一致するか調べて
一致したら認証成功
一致しないなら、認証失敗
と判断し
認証結果を送信しています


kerberos 認証は
ActiveDirectoryドメイン環境だけで使われる
ドメインメンバー用の認証方式

LM認証とNTLM認証の違いは
レスポンス計算に使うハッシュ値が
LMハッシュか
NTLMハッシュか
という違いになります

テーマ : インターネット
ジャンル : コンピュータ

preg_replace()

preg_replace()
というものが、facebook アプリを勉強しているところにでてきたので

検索してみました

どうやら、置換する関数のようです

わかりやすい解説が
eregi_replaceも、preg_replaceを使うこと!
に載っていました

reg_replace("/55/", "46", "体重55キロ")
という例がのっていたので、とてもわかりやすかったです

この場合、55が46に置換されます

特徴的なのは
該当するところが変更されているということです

sed コマンドの置換のようなかんじになります

テーマ : プログラミング
ジャンル : コンピュータ

facebook とソーシャルプラグイン

現在利用できる facebook のソーシャルプラグインは
一覧から確認できます

プラグインの中には
いいね をおす Like Button

これ以外にも
いいね! 送信 ボタンを表示しない facepile などがあります

ソーシャルプラグインの一覧をみるなら
https://developers.facebook.com/docs/plugins/

いいねボタンを設置する Like Buttn なら
https://developers.facebook.com/docs/reference/plugins/like/

facepile については
https://developers.facebook.com/docs/reference/plugins/facepile/

に載っています(いずれも英語サイトですが)

テーマ : プログラミング
ジャンル : コンピュータ

userテーブルのフィールドにアクセスする権限

user テーブルのフィールドにアクセスる権限と
番号の関係のメモ

自分の情報には user
友達の情報には friends
がついているのがほとんど


自分、友達ともに アクセストークンが必要


user_religion_politics
friends_religion_politics

3
user_birthday
friends_birthday

4
user_hometown
friends_hometown

5
user_relationship_details
friends_relationship_details

6
user_relationships
friends_relationships

7
user_about_me
friends_about_me

8
user_location
friends_location

9
user_activities
friends_activities

10
user_interests
friends_interests

11
user_likes
friends_likes

12
user_education_history
friends_education_history

13
user_work_history
friends_work_history

14
user_notes
friends_notes

15
user_online_presence
friends_online_presence

16
自分、友人ともに
email

17
user_website
friends_website

テーマ : プログラミング
ジャンル : コンピュータ

userテーブル 解説

user テーブルはそのままの意味で
ユーザ情報を含むテーブルのこと

uid
整数値
ユーザID

username
文字列
アカウントのユーザネーム

frst_name
文字列
ファーストネーム(名前)

middle_name
文字列
ミドルネーム

last_name
文字列
ラストネーム(姓)

name
文字列
フルネーム

pic_small
文字列
最大 50x150 ピクセル画像へのURL

pic_big
文字列
最大 200x600ピクセル画像へのURL

pic_square
文字列
最大 50x50 ピクセル画像へのURL

pic
文字列
最大 100x300ピクセル画像へのURL

affiliations
配列
ユーザが所属しているネットワーク
ただし、英語環境のみ有効

profile_update_time
整数値
プロフィールの最終更新時刻

timezone
整数値
UTCからのタイムゾーンオフセット値
日本なら +9

religion
文字列
信仰、宗教

birthday
文字列
誕生日
これはユーザのロケールにあわせた形式になる

sex
文字列
性別

hometown_location
配列
出身地

meeting_sex
配列
恋愛対象

meeting_for
配列
目的

relationalship_status
文字列
交際ステータス

significant_other_id
整数値
交際関係にある人のユーザID

political
文字列
政治観

current_location
配列
居住地

activities
文字列
アクティビティ

interests
文字列
興味、関心

isapp_user
真偽値
アプリを使っているユーザなら true

music
文字列
好きな音楽

tv
文字列
好きなテレビ番組

books
文字列
好きな本

movies
文字列
好きな映画

quotes
文字列
好きな言葉

about_me
文字列
自己紹介

hs_info
配列
education フィールドに移動

education_history
配列
education フィールドに移動

work_history
配列
work フィールドになった

notes_count
整数値
作成したノートの数

wall_count
整数値
ウォールへの投稿回数

status
文字列
最新の近況アップデート

has_added_app
真偽値
is_app_user フィールドに移動

online_presence
文字列
チャット可能(オンライン)かどうか示す
active
idle
offline
error
のうちどれかになる

locale
文字列
ロケールID(ja-jpとか)

proxied_email
文字列
facebook が代理でEメールを受けとるためのフィールド

profile_url
文字列
ユーザプロフィールへのURL

email_hashes
配列
メール・アドレス確認のためのハッシュ値

pic_small_with_logo
文字列
最大 50x150 ピクセルの画像へのURL
Facebook のロゴが重なっている

pic_big_with_logo
文字列
最大 200x600 ピクセルの画像へのURL
facebookのロゴが重なっている

pic_square_with_logo
文字列
最大 50x50 ピクセルの画像へのURL
facebook のロゴが重なっている

pic_with_logo
文字列
最大 100x300 ピクセルの画像へのURL
facebook のロゴが重なっている

aloowed_restrictions
文字列
年齢、地域などの制限がある場合に設定
現在は alchol のみ

verified
真偽値
facebookからの登録確認が済んでいるなら true

profile_blurb
文字列
ユーザのプロフィール画像のしたに表示される文字列

family
配列
家族情報
familyテーブルを使った方がいい

website
文字列
webサイトのURL

is_blocked
真偽値
ログインユーザがブロックされているとき true

contact_email
文字列
Eメール・アドレス
でも emailフィールドを使ったほうがよいようだ

email
文字列
facebookが代理でメールを受けとるときのメール・アドレス

third_party_id
文字列
サードパーティが使用できる一意のID

name_format
文字列
日中韓国の名前を扱う際の順序フォーマット

video_upload_limits
配列
ユーザがアップロードできる動画ファイルのサイズと時間の長さ

games
文字列
好きなゲーム
ただし、今後はこれ廃止予定らしいので注意

is_minot
文字列
ユーザがマイナーなときに true

work
配列
職歴情報を含むハッシュ配列
ハッシュには
employer
location
position
start_date
end_date
を含む

education
配列
学歴情報を含むハッシュ配列
ハッシュには
year
type
school
が含まれる
school には
name
id
type
year
degree
concentration
clases
with
が含まれる

sports
配列
好きなスポーツ
id, name を含むハッシュ配列

favorite_athletes
配列
好きな運動選手(ただし、今後廃止の予定)

favorite_teams
配列
好きなチーム(こちらも廃止予定)

inspiration_people
配列
尊敬する人物
id, name を含むハッシュ配列

language
配列
言語

likes_count
整数値
いいね している facebook ページの数

friend_count
整数値
友達の数

mutual_friend_count
整数値
クエリー発行者と共通の友達のかず

can_post
真偽値
投稿が可能なら true

テーマ : プログラミング
ジャンル : コンピュータ

stream filter テーブル と url_likeテーブル

streamテーブルで
フィルター(streamテーブルの filter_key フィールド)
として使用できるフィルター名を含むテーブル
stream テーブルと組み合わせて
ニュースフィードへのアクセスをするには read_stream権限
その他は アクセストークンが必要になります

uid
文字列
フィルターを使用するユーザID

filter_key
文字列
ニュースフィードをフィルタリングするときのフィルター名

name
文字列
ユーザに表示されるフィルターの名前
友達リストのなめとか

rank
整数値
遊佐に表示される位置

icon_url
文字列
アイコンのURL

is_visible
真偽値
ユーザに表示されるときは true

type
文字列
フィルターの種類
app@lication
newsfeedfriendlist
network
public_profile
のいずれか

value
整数値
フィルターの種類を示すID

-------------------------------------
url_likeテーブル
OGPを含むweb ページをいいねした履歴を含むテーブル
自分の場合なら user_likes権限
友達ならfriends_likes 権限
が必要

user_id
文字列
いいねしたユーザID

url
文字列
いいねしているURL

url_likes にはfacebook 以外のサイトで
いいね! をしたり
それらをシェアした友達の投稿にいいね!したりしたときのURLが蓄積されている

自分がリンクを投稿、シェアしたときには含まれない

テーマ : プログラミング
ジャンル : コンピュータ

stream テーブル

stream テーブル
これは
ニュースフィードに表示される投稿を含むテーブル
ニュースフィードへのアクセスには read_stream

Facebookページの各投稿についての
インプレッション情報(impression feed)
へのアクセスには
rad_isights権限が必要になります

以下が説明


post_id
文字列型
投稿ID

viewer_id
整数値
現在のログインユーザID

app_id
整数値
投稿に使用されたアプリのアプリID

source_id
整数値
投稿対象のユーザ、facebookページ、グループイベント

updated_time
整数値
コメントされたなど、投稿に更新があったときの
最終更新時間

created_time
整数値
投稿の作成時間

filter_key
文字列
フィルターキー
strem_filterテーブルに記録されているキー
もしくは owner, others

attribution
文字列
アプリによる投稿の場合ならアプリの名前

actor_id
文字列
投稿を公開したユーザ、facebookページ、グループイベントのID

target_id
文字列
投稿対象となったユーザ、facebookページ、グループイベントのID

message
文字列
投稿のメッセージ本文

app_data
配列
投稿に関連づけられたアプリ向けの付属情報

action_links
配列
投稿に関連づけられたリンク情報
text , url のハッシュデータの配列を含む

attachment
配列
投稿に関連付けられたデータ

impressions
整数値
インプレッション数
read_insights権限が必要

comments
配列
コメント
次の内容を含むハッシュ配列
can_remove(真偽値)
can_post(真偽値)
count(整数値)
comment_list(配列)

likes
ハッシュ型
いいねの情報
つぎの内容を含むハッシュ
すべての情報を取得するには Graph API で 
post 情報にアクセスする必要あり
href(文字列)
count(整数値)
firends(配列)
user_likes(真偽値)
can_lies(真偽値)

privacy
ハッシュ型
投稿の公開範囲
description(文字列)
value(文字列)
friends(文字列)
allow(文字列)
deny(文字列)
を含む

friendsは
EVERYONE
FRIENDS
FRIENDS_OF_FRIENDS
METWORK
ONLY_ME
CUSTOM
のうちどれかになる

allow, deny は
指定されたユーザID、もしくは友達ID

permalink
文字列型
投稿を表示するためのURL

xid
整数値
ライブストリームでの投稿ID

tagged_ids
配列
タグ付けされている友達などのID

message_tags
配列
タグ付けの情報を示すハッシュの配列
id(整数値)
name(文字列)
offset(整数値)
length(整数値)
を含む

description
文字列
投稿に関していとしないで生成される説明
これを取得するには
最近のアクティビティを含むを有効にすること

description_tags
配列
description に含まれるテキストについてのタグ付け情報を示す
ハッシュ配列
id(整数値)
name(文字列)
offset(整数値)
length(整数値)
を含む

type
整数値
投稿の種類
11、グループが作成された
12、イベントが作成された
46、近況アップデート
56、別の人からのウォール投稿
66、ノートが作成された
80、リンクが投稿された
128、動画が投稿された
247、写真が投稿された
237、アプリによる投稿

テーマ : プログラミング
ジャンル : コンピュータ

friends テーブルの解説

friends テーブル派友達一覧を取得かのうなテーブル

uid
整数値
ユーザID

uid2
整数値
ユーザID

------------------------------------------
like テーブル
これは いいね」! しているデータを取得可能なテーブル

object_id
文字列型
写真、動画、アルバム、ノート、リンクのオブジェクトID

post_id
文字列型
投稿ID

user_id
整数値
いいね! しているユーザID

object_type
文字列型
対応するポストの種類

-----------------------------------

permissions_info テーブル
これは 権限の種類を取得可能なテーブル

permittion_name
文字列型
権限の名前

header
文字列型
権限についての概略

テーマ : プログラミング
ジャンル : コンピュータ

comment テーブル メモ

コメントプラグインからのコメントが含まれるテーブル

user_likesフィールドにアクセスするには
アクセストークンが必要

xid
文字列型
fb:commentsタグで使用される外部ID

object_id
文字列型
Facebook内の通し番号

post_id
文字列型
投稿ID

fromid
整数型
コメントしたユーザID

time
整数型
コメントの投稿時間(UNIX時間)

text
文字列型
コメント内容

id
整数型
コメントに対する一覧なID

username
文字列型
投稿者のユーザIDが0であったときの投稿者名

reply_xid
文字列型
返信のXID

post_fbid
文字列型
コメントに対応するオブジェクトID

app_id
整数値
コメントに対応づくアプリID

likes
整数値
コメントに対する いいね の数

comments
コメントの配列
コメントに対する返信

can_like
真偽値
いいね できるときには true

user_like
真偽値
いいね しているとき true

is_private
真偽値
コメントがプライベートなら true

テーマ : プログラミング
ジャンル : コンピュータ

FQLで使用可能なテーブル一覧

FQLで使用可能なテーブル一覧をメモしておきました

これで、忘れた時に参考にしようと思います

album
comments_info
domain_admin
friend_request
insights
mailbox_folder
page
permissions_info
privacy_seting
review
steam_filter
unfield_thread
video
application
connection
event
friendlist
like
message

pagee_admin
photo
profile
standard_friend_info
stream_tag
unified_thread_action
video_tag

apprequest
cookies
event_member
friendist_member
link
note
page_blicked_user
photo_tag
question
standard_user_info
thread
unified_thread_count
checkin
developer
family
group
link_start
notification
page_fan
place
question_option
status
translation
url_like
comment
domain
friend
group_member
location_post
object_url
permissions
privacy
question_option_votes
stream
unified_message
user

テーマ : プログラミング
ジャンル : コンピュータ

FQL の select 文

SELECT カラム名 FROM テーブル名 WHERE 条件 LIMIT 件数

ほとんど、sql の select文と変わらないようなかんじ

1つ違うのは
likes.count のようなフィードがハッシュのときには
さらにハッシュキーの指定ができるということ

Mysqlとかの場合だと 
結合のために JOIN を使う必要があるので
ここが違うかも

ruby on rails でもにたような処理ができるけど
実際にSQLをつかうときには
結合をつかうように変換されるらしい
(ruby はつかったことがあまりないため、不明)

ログインしているユーザIDを示すなら
me()
を指定すれば、対応できるし
他にも
現在時刻を示す now()
文字列の一部を抜き出す substr()
検索対象の文字列の位置を取得する strpos()
など、便利関数が用意されています

stream というテーブルがあるけど
これはニュースフィードに出てくる投稿を取得するためのテーブル
になります

テーマ : プログラミング
ジャンル : コンピュータ

FQL を使った facebook アプリへのアクセス

FQL
Facebook Query Language

facebook が保有するデータベース内の情報
ソーシャルグラフデータにSQLのような構文を使ってアクセスできる
クエリー言語のこと

投稿されたテキスト内容

写真と動画のURL
友達リスト
いいね
シェアされている投稿
などの取得が可能

ただし、MySQL などの SQL と違うのは
select しか使えないということ
副問い合わせはできるけど
統合機能がないため、複雑なものは難しいということ
に注意

統合の代わりとして
マルチクエリー発行が可能になっています

自分のPHPコードで統合処理をしたり、
副問い合わせを使用したりして、時分なりにカスタマイズする必要がありそうです

テーマ : プログラミング
ジャンル : コンピュータ

パスワードクラッカーのオフライン攻撃手法と対策

パスワードをなぜ長いものにするかということについて

その理由と、攻撃手法についてかいてみました

まず、パスワードクラックしてくる場合

1、ユーザのパスワード情報
(パスワードハッシュ、ネットワーク認証のレスポンス)を取得

2、パスワード候補を1つ選び、
パスワードハッシュやレスポンスを
その生成レスポンスを真似て生成

3、取得済みハッシュやレスポンスの値と
パスワード情報から生成した値と比較し一致するまで繰り返す

という手順で行われます

これが、辞書攻撃やプルートフォースアタック

プルートフォース攻撃は
確実にパスワードを突破できる可能性が高いが
設定できるパスワード長やパスワードに使える文字種の多様性により
クラック時間がかわる

パスワード長が長い場合、現実的な時間で完了しない
これが長いパスワードを使いましょうという理由
パスワードが短いとその分解析されるリスクがあがるので注意!
というわけです

テーマ : Linux
ジャンル : コンピュータ

AmazonEC2 へ wordpress インストール

AmazonEC2 へ wordpress をインストールしてみました

まず、最初に使用するOSは
CentOS 6.0 32bit にしました

このOSは
SUZ-LAB謹製 CentOS AMI (6.0.4 32bit ap-northeast-1)
を使わせていただきました

この状態では最小構成となっているので
必要なパッケージなどを追加する必要があります

AMIの選択や起動などを ubuntu で行っておき
サーバー稼動後の端末操作は
IS04 からの操作となっています

IS04 からの操作にあたっては
Connect Bot という端末操作できるアプリを使用しました
このアプリは公開鍵認証が可能なため
これを選びました

また、端末操作では通常のATOKでは入力に不便なため
Hacker's Keyboard
を使って操作すると楽になります

スクリプトファイルなどを使って設定したり
SQLファイルなどを転送してDB設定を行いたい場合には
AndFTPPro
を用いて scp 公開鍵認証で転送することもできます

それでは、実際に必要なソフトなどをインストールしていきます


まず、最初に必要なパッケージをインストールしていきます

yum -y groupinstall "Base"
でベースソフトなどをインストール
これでscp などが使えるようになります

次に
yum -y groupinstall "Development Tools"
これで開発環境のインストール

EC2にApacheとBasic認証、ftpをセットアップする
を参考に進めていきます

cp -i /usr/share/zoneinfo/Japan /etc/localtime
で時間設定

次に、apache を入れます
yum -y install httpd

今後、一般ユーザがほしいので、一般ユーザを作成します
useradd snowpool
passwd snowpool

useradd は一般ユーザなどの追加コマンド
passwd はパスワード設定になります

もうちょっと正確な構文をかくと
useradd 追加したいユーザ名
passwd パスワード設定するユーザ名

となります

cd /var/www/html/
でディレクトリ移動

service httpd start
chkconfig httpd on
で apache の起動と 自動起動設定をします

次に
ec2インスタンスにWordPressをインストールする
を参考に必要なものをインストールしていきます


yum –y install mysql-server
で mysql をインストールします
mysql はデータベース管理するために必要で
wordpress ではこれが必要となります
データベース(DB)は windows だと Access あたりが有名かな?

vim /etc/my.cnf
で設定ファイル変更
vim は操作しにくいかもしれないけど、慣れると一気に文字の置き換えしたり
ファイルの中の文字検索できるので便利
vim 使いかた
とかで検索すると高確率でヒット

設定ファイルを開いたら
以下の文章をファイル最終行に追記

default-character-set = utf8
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8

[client]
default-character-set = utf8

[mysqldump]
default-character-set = utf8

[mysql]
default-character-set = utf8

追記終わったら保存して
/etc/rc.d/init.d/mysqld start
chkconfig mysqld on
を実行してデータベースを稼働します

mysql_secure_installation
を実行して
データベースの初期設定
最初に root パスワードの設定と確認のもう一回打ち込みを
したら、最後まで Enter 押していきます

これで、データベースの設定ができたので
次は PHP のインストール


yum -y install php php-mbstring php-mysql php-mcrypt
でPHP関連のインストールします
元のサイトでは
ソースからコンパイルとかしてますけど
私の場合は yum コマンドのみなのでそのまま次の設定になります

service httpd restart
で apache 再起動

ここまできたら
いよいよ wordpress のインストール

ブログサイト構築(WordPress)
を参考にインストールしていきます

最初にデータベース作ります
mysql -u root -p
で mysql の root パスワードを入力します

成功すると
mysql>
というようになるのでわかりやすいかも

create database wordpress;
でデータベース作成
SQLは最後に ; をつけるので注意
java とか php とかやっていると違和感がないかも

grant all privileges on wordpress.* to wordpress@localhost identified by 'パスワード';

これでデータベースのパスワードや、その他権限などの設定
ちなみに、パスワードは任意のものでOK
ただし、あまり適当でないもの
abc1234
というように数字とアルファベットを組み合わせるのほうがベター

終わったら

exit
で戻ります

いつもの端末操作画面に戻ったら
cd
でホームディレクトリに移動して

wget http://ja.wordpress.org/latest-ja.tar.gz
で wordpress の圧縮ファイルを取得します
wget はファイルを取得するコマンド


tar xvfz latest-ja.tar.gz
mv wordpress /var/www/html/
chown –R apache:apache /var/www/html/wordpress/

で wordpress をディレクトリごと移動します
ちなみに、 chown で所有権変更したのはアクセスするため

cp /var/www/wordpress/wp-config-sample.php /var/www/wordpress/wp-config.php

で設定ファイルをサンプルからコピー

vim /var/www/wordpress/wp-config.php
で設定を変更します

/** WordPress のためのデータベース名 */
define('DB_NAME', 'wordpress'); 
/** MySQL データベースのユーザー名 */
define('DB_USER', 'wordpress'); 
/** MySQL データベースのパスワード */
define('DB_PASSWORD', 'パスワード'); 

これらを設定して保存します

ブラウザから
WordPress初期設定
http://サーバー名/wordpress/へアクセスするのですが
AmazonEC2 の場合
public DNS がサーバー名になります

テーマ : Linux
ジャンル : コンピュータ

まず、PCサイトからモバイル用サイトを作成する

とりあえず、eclipse でつくる

ちょっと参考書とは違うけど
eclipse で作成したプロジェクト
reserve の直下ディレクトリを作成

やりかたは
reserve を右クリック
 new > Folder
で作成して
m
という名前で作成

このmにindex.html を作成する

アプリの設定画面を開いて
基本設定の
モバイルWebアプリ Bookmark my web app on Facebook mobile.
をクリックし
Mobile Web URL:
のところにディレクトリパスをかきます
今回なら
http://localhost/reserve/m/

次に、
認証ダイアログをクリックして

Authenticated Referrals

Request permissions when users on Facebook click on links to your app
をクリックし
変更を保存をクリックします

今回は実証のため
firefox を使います
理由は、firefox の場合
User Agent Switcher
というアドインをインストールすることで
スマートフォン向けのモバイルサイトの画面を確認できるからです

https://addons.mozilla.org/ja/firefox/addon/user-agent-switcher/

へアクセスし
+Add to Firefox
をクリック

Screenshot-2012-06-16 18:57:19

警告ダイアログがでるけど気にせず先に進めます
Screenshot-2012-06-16 18:58:14

インストール終了したら、 firefox を再起動します

Flickr APIキーの取得

flickr API を使うには
米国版 Yahoo! ID が必要になります

日本語の Yahoo! japan ではないので
注意です

以前、Pipes で RSS
をかいたとき、取得しているので、これを使いました

http://www.flickr.com/services/apps/create/
へアクセス
次に
Request an API Key
をクリック
Screenshot-2012-06-16 15:03:31


セキュリティのため、
Yahoo!US のパスワードを入力します

Password
にパスワード入力

Sign in をクリックします

すると、アカウント作成の画面がでますので
Choose your new Flickr screen name
のところに自分のスクリーンネーム
つまり自分の名前を入れます
(実名じゃなくてもOK)

入力したら
CREATE MY ACCOUNT
でアカウントを作成します

Screenshot-2012-06-16 15:11:36


アカウント作成後
再度
http://www.flickr.com/services/apps/create/
へアクセスし
もう一回
Request an API Key
をクリック

APIキーの種類をきかれるので
非商用版の
APPLY FOR A NON-COMMERCIAL KEY
のほうを選択

Screenshot-2012-06-16 15:16:17


次の画面で
What's the name of your app?
でアプリ名

What are you building?
には
どんなアプリをつくるかを入力します

ただし、英語で入力
この対策としては
Google 翻訳
http://translate.google.co.jp/
で英語を翻訳すればOKです
意味がつながればいいので
そこまでこだわらなくてもOKです

というわけで
What's the name of your app?
には
Mash-up test
(マッシュアップのテスト)

What are you building?
には
Inplementation of a mashup of flickr and windows azure
(windows azure と flickr のマッシュアップの実装)
としてみました

I acknowledge that Flickr members own all rights to their content, and that it's my responsibility to make sure that my project does not contravene those rights.

I agree to comply with the Flickr API Terms of Use.
のチェックボックスにチェックをして

SUBMITボタン(送信ボタン)
を押します

Screenshot-2012-06-16 15:17:32


これで、次の画面で
API Key と秘密鍵が表示されます

テーマ : プログラミング
ジャンル : コンピュータ

WindowAzure

Web API の勉強会で必要な準備を行うときのメモです

今回は、Windows Azure の登録と
アプリ登録まで行いました



まず、最初に
Windows Live ID を取得

次に
Microsoft Translator 開発者向けサービスへサインイン
http://www.microsofttranslator.com/dev/
へアクセスし

Microsoft Translator API にサインアップしましょう
をクリックすると
料金表がでるので
一番下の無料プランを選択し
サインアップします

Screenshot-2012-06-16 13:33:03

Screenshot-2012-06-16 13:35:13



すると、次に登録画面がでるので

情報を入力し登録をすませます

次に、アプリケーションを登録します

https://datamarket.azure.com/developer/applications/register
へアクセス
クライアントIDには自分の
ニックネームでもハンドルネームでもOK

名前にはアプリの名前

リダイレクトURLには
とりあえずブログのURL

説明には、このアプリの概要をかけばOK

テーマ : プログラミング
ジャンル : コンピュータ

facebook アプリに友達を招待するには

作成したイベントについて
Graph API を使えば友達も誘える

FB,.api() のURLに
'/イベントのID/invited'
を指定して
友達のユーザIDをカンマ区切りで指定して
POSTメソッドで呼び出せば
友達の招待を行える

構文は
FB.api('/イベントのID/invited/友達のユーザID','post',function(response){
})

テーマ : プログラミング
ジャンル : コンピュータ

facebook のイベント作成時に指定できるパラメータ

owner
id,name のハッシュ
内容は主催者

name
文字列
内容はイベントの名前

description
文字列
内容はイベントの説明文

start_time
ISO8601形式またはUNIX時間
内容はイベント開始時間

end_time
ISO 8601形式 または UNIX時間
内容はイベント終了時間

location
文字列
内容はイベント開催場所

venue
id,street,city,state,zip,country,latitude,logitude
のうち1つを含むハッシュ
内容はイベントの開催場所

privacy
OPEN, CLOSED, SECRET のうち
いずれかの文字列
内容は
公開、非公開、秘密のイベントの種別

他には
id
updated_time
イベントのウォールと参加者の情報などにアクセスすることもできます

テーマ : プログラミング
ジャンル : コンピュータ

Facebook イベント作成機能

Facebook にはイベントを作成する機能があります

イベントの日時、場所を指定して作成し
友達を誘う
イベントの情報をしると参加申請することができます

参加の有無はボタンで意思表示することができ累計も自動でできます

あるイベントの後で友達にあると
イベントで友達になったというようにFaceBookで判断され
アクティビティに
イベントで友達になりました
というような内容が表示されます

ということでイベント作成の解説です

イベントの作成は
Graph API で行えます

作成するには create_event 拡張権限が必要
ちなみに、公開でないイベント(非公開招待イベント)

user_event権限

友達のイベントについて情報を取得するには
friend_event権限

イベントに参加するかどうかを返答するには
rsvp_event権限
が必要になります

テーマ : プログラミング
ジャンル : コンピュータ

Registration プラグインのフィールドタイプとパラメータ

パラメータ name のフィールドタイプのメモです

name
ユーザ名

email
メール・アドレス

location
居住地

gender
性別

birthday
誕生日

password
パスワード

captcha
機械じゃないことを証明するための入力機構
(崩れた字を入力する)

------------------------------------------------------
type パラメータ の内容

入力のタイプ
(text,checkbox,slect,typeahead,hidden)

------------------------------------------------
description パラメータの内容

入力欄に表示する項目名

--------------------------------------------
view パラメータの内容

prefiled
入力欄をうめている状態で表示

hot_preifiled
入力欄をうめないで表示

------------------------------------------
options パラメータの内容

タイプが select のときの選択項目を
ハッシュ形式
{"値":"表示名",...}
で指定

--------------------------------------
categories パラメータの内容

タイプが typeahead のときの入力候補を配列
['a','b',.....]
で指定

-----------------------------------
default パラメータの内容

タイプが select または checkbox のときに指定
値に checked が含まれているとき、checkbox はチェックさせる

---------------------------------
no_submit パラメータの内容

入力欄は作成するが、送信項目には含めない

テーマ : プログラミング
ジャンル : コンピュータ

Registration ソーシャルプラグイン

Registration ソーシャルプラグインは
Facebook にアカウントを所持している場合
サービス提供者が要求する入力項目がアカウントに登録されていれば
その内容をあらかじめ入力されている状態にするというものです

これを使えば、利用者は
いちいち全部の項目を入力しなくて済みます

例えば、会員情報で必須の登録で
住所
氏名
年齢
メール・アドレス
など、必須入力となっている項目を facebook アカウントに登録してある
情報から取得して、自動入力状態にできるというものです

たしかに、登録するのに必要な情報をすべて入力するのは
面倒なので、便利ですが、どの程度要求するのかに注意する必要がありそうです

ちなみに、これについては
https://developers.facebook.com/docs/plugins/registration/
にサンプルがあります

実際に facebook にログインした状態でアクセスすると
アカウントの情報が表示されます


Registration プラグインは
facebook のログインボタンの設置のように
タグで作成します

使うタグは
<fb:registration>
というXFBMLタグになります

入力項目は
fields 属性に設定し
redirect-uri 属性に入力項目を送信するURLを指定します

また、入力された情報は
java script で確認できます
このとき onvalidate属性により実現されます

入力方法は2つあり

カンマ区切りでフィード名を指定する
もしくは
JSON形式で指定します

カンマ区切りなら
facebook が提供する項目を指定し

JSON形式ならパラメータを使用して入力フォームを構成します

カスタマイズしたいならJSON形式を使うことになります


開発者用のドキュメントも用意されています
(英語です)
https://developers.facebook.com/docs/plugins/registration/advanced/

テーマ : プログラミング
ジャンル : コンピュータ

strtoupper() を調べてみた

参考URLは
http://phpjp.com/strtoupper.htm


アルファベットをすべて大文字に変換というもの

= PHPスクリプト動作例
関数例
$str = 'PHP Hypertext Preprocessor';

echo strtoupper($str);
PHP HYPERTEXT PREPROCESSOR

つまり、小文字のものだけを大文字にしている関数

あと
HMAC-SHA256
というものがあるけど
これは
Amazon Product Advertising API を使用するには、HMAC-SHA256 方式の署名が必要
ということなので、
覚えておく必要がありそう

参考サイト
PHP4 で HMAC-SHA256 などの hash_hmac() 関数を使えるようにする



そして hash_hmac()
hash_hmac ― HMAC 方式を使用してハッシュ値を生成する
これは電子署名とかに使いそう


説明

string hash_hmac ( string $algo , string $data , string $key [, bool $raw_output = false ] )
パラメータ

algo
選択したアルゴリズムの名前 (すなわち "md5"、"sha256"、"haval160,4" など…)。 サポートするアルゴリズムの一覧は hash_algos() を参照ください。

data
ハッシュするメッセージ。

key
HMAC 方式でのメッセージダイジェストを生成するために使用する 共有の秘密鍵。

raw_output
TRUE を設定すると、生のバイナリデータを出力します。 FALSE の場合は小文字の 16 進数値となります。


つまり
hash_hmac('sha256', $payload, $secret,$raw= true);
なら、
アルゴリズム sha256
ハッシュするメッセージが $payload
鍵は $secretつまりfacebook アプリの秘密鍵
raw_output が true なのでなまバイナリデータということになる

こちらは
hash_hmac

を参考にしました

phpMyAdmin で sql ファイルの実行

10日でおぼえるFacebookアプリ開発入門教室 (10日でおぼえるシリーズ)
を参考に、facebook アプリを勉強しています

今回は、phpMyAdmin で sql ファイルを実行する方法についてです

まず
http://localhost/phpmyadmin
でアクセスしてログインします

次に、
localhost > インポート >ファイルを選択 をクリックして
実行したい sql ファイルを選びます

今回使ったのは、サンプルにあった
17-list2.txt
というテキストファイルを
cp 17-list2.txt reserve.sql
として
sql ファイルにしました

ちなみに、正式なフルパスは
圧縮ファイルを解凍して
facebook10/lesson17/before/cp 17-list2.txt
になります

sql ファイルは拡張子が
.sql となります

ちなみに、PHP なら .php
java script なら .js
java だと .java
となります

最後に 実行 をクリックするとSQLが実行されます

Screenshot-2012-06-08 20:52:38


テーマ : プログラミング
ジャンル : コンピュータ

ログイン状態の変更をイベントとして受けとる

ログインプラグインを利用して
ログインをした場合
ログインの受胎が変化するのみでリロードはされない

このため、情報の更新を行うには
そのタイミングをしらないとダメ

タイミングをしるには
facebook が提供しているイベントを使う

提供されているイベントのうち
認証状態の変化を検出できるのは
auth.authResponseChange

これを講読するようにするとタイミングをしることができる

ちなみに、講読は
java とか java script では
イベントリスナー登録ともいいます

あと、講読は英語で subscribe といいます

ログイン状態の変化でリロードするなら
FB.Event.subscribe('auth.authResponseChange',function(response){
window.open(window.location.href,"_self");
));

テーマ : プログラミング
ジャンル : コンピュータ

str_replace関数 と INNER JOIN について

str_replace関数は
検索文字列に一致したすべての文字列を置換し、置き換えた後の文字列を返す関数

参考サイトは
str_replace-文字列関数


$str = "PHP入門";
$str = str_replace("PHP", "PHP5", $str);
echo $str;

なら、置き換えしたあとには
PHP 入門

PHP5入門になる

str_replace ("検索文字列", "置換え文字列", "対象文字列");
ということなので、そういうこと

で、応用
str_replace("article_", "", $aid);
なら、
$aid のところを
article を "" つまり空にするということになる

次に
INNER JOIN について

参考サイトは
INNER JOINを使って表を結合する


構文は
SELECT 列名1,列名2,~列名n ← どの列を表示させるか
FROM 表名1 INNER JOIN表名2 ON 表名1.フィールド名 = 表名2.フィールド名
WHERE 抽出条件

SELECT *
FROM 売上表 INNER JOIN 顧客表 ON 売上表.顧客CD=顧客表.顧客CD
という例がのっていた

これは
売上表 INNER JOIN 顧客表
で売上表を 顧客表とくっつける

そして
ON 売上表.顧客CD=顧客表.顧客CD
なので
そのうち
売上表の 顧客CD
のところと
顧客表 の顧客CD
をくっつけるということ

SQLはまだまだ覚えることがおおそう

テーマ : プログラミング
ジャンル : コンピュータ

preg_grep() について

preg_grep() が少しわからなかったので、
検索

grep とかいてあるので、linux の grep コマンドみたいに
検索するものを想像したけど、ほぼあってるみたいです

パターンにマッチする値のみを取り出して新しい配列を作るようです

今回の参考サイトは
http://www.yc.tcu.ac.jp/~yamada/doc/php/0411.html

このサンプルをみたところ

$arr_str = array ( "123","456xyz", "abc", "deFG","abc\n");
 $arr_res = preg_grep( "/^[a-z]+$/i", $arr_str );

この場合、
/^[a-z]
は最初にアルファベット a ~z で始まるもの
ということなので、
"abc", "deFG","abc
が該当になります

つまり、preg_grep () は
preg_grep(検索条件,対象の配列)
というようになるようです

テーマ : プログラミング
ジャンル : コンピュータ

最新記事
検索フォーム
GREEハコニワ攻略サイト
リンク
カテゴリ
月別アーカイブ
フリーエリア
最新記事
FXプライムレート
最新コメント
最新トラックバック