[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
今月のSkypeギフトデーは1日・・・・
逃しました。
さて、
イントラブログを立ち上げたりすると、更新通知のために社内にもpingサーバーが欲しくなりますね。
それじゃぁ、ってことでColdFusionでpingサーバーを作ってみました。
対象とするブログをMovableTypeと決め打ちできて、お気楽にはじめられるのはイントラならではですね。
そもそもブログのpingのしくみさえよく知らなかったわけですが、基本的にはMovableTypeで更新があったとき、指定されたアドレスに対してMovableTypeが何かしてるわけです。
ってことで、まずはどんなリクエストがMovableTypeから送られているかを調べてみます。
#GetHttpRequestData( )# (→LiveDocs) この関数がキモです。
関数の説明には
「HTTP リクエストヘッダおよび本文を CFML ページで使用できるようにします。HTTP ヘッダ内で送信される SOAP リクエストデータを取り込む際に便利です。」
とあります。SORPはともかく、こいつでHTTPリクエストヘッダを調べれば、何がMovableTypeから送られているか解るはずです。
ところが・・・・・
MovalbeTypeが出したリクエストをどうやって「見る」かが問題です。
ブラウザにアドレスをping先のアドレスをぶち込んでも意味がありません。
で、ひらめきました。
内容をCFMAILしちゃうわけですよ。
こんな感じのソースで。
========= ping.cfm(←MovableTypeに指定するping先URL) ==========
<cfprocessingdirective pageencoding="utf-8">
<cfset x = GetHttpRequestData()>
<cfmail subject="pingの内容だよ" to="oreore@kaisha.com" from="pingserver">
<cfdump var="#x#">
</cfmail>
==============================================================
このアドレスにpingが送られると、GetHttpRequestData の内容がメールで見えるはずです。
きたきた。メールが来ましたよ。
さて、届いたメールの内容は・・・・・
struct | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
content | <?xml version="1.0"?> <methodCall> <methodName>weblogUpdates.ping</methodName> <params> <param><value>MovableTYPE縺」縺ヲ縺ゥ縺?繧茨シ。ゥ</value></param> <param><value>http://kenw05/blog/yasmemo/</value></param> </params> </methodCall> | ||||||||||||||
headers |
|
||||||||||||||
method | POST | ||||||||||||||
protocol | HTTP/1.1 |
こんなんでした。
つづく・・・・・
情報通信を生業としない企業の、システム系でもない普通の社員なので、 ColdFusionは独学。参考書が少ないのがツライです・・・・なんだかんだ、ColdFusion4.xのシリウス時代から7年くらいのおつきあい?リンコムNextのソースが教科書かも。
外注するときはよく「できればColdFusionで・・・・」とお願いするのですが、ほとんどの場合「えっ!?」と驚かれてしまい、「SEのアサインが・・・」などと営業さんが困ってしまうことが多くて悲しいです。
ちょっとしたものなら自分でシステム構築しちゃいますが、一人でやるには時間が足りませんね・・・
FlashRemotingとかもやりますが、Flexには手を出してません。
と、最初の頃書きましたが、ついにFlexに手を出しました。Flex1.5はイマイチわかりませんでしたが、Flex2は別物ですね。これで6万円でイインデスカ?
そしてFlex2とColdFusionの組み合わせなら無敵な気がしますよ。ほんとに。
01 | 2025/02 | 03 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
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 |