読者です 読者をやめる 読者になる 読者になる

はてなブックマークWebHook

日々 develop 覚え書

はてなブックマークのWebHookからTwitterに投稿するPHPスクリプトを作成
PEARのServices_Twitterがなんだか調子が悪かったので
別のTwitter用のclassを利用
tijsverkoyen/TwitterOAuth · GitHub

はてブWebHookのドキュメント
はてなブックマーク Web Hookとは - はてなキーワード

<?php
/**
 * Hatebu Webhook
 *
 * created. 2009/08/10  tknzk
 *
 * Twitter Class
 *  cf:http://classes.verkoyen.eu/twitter/
 *  cf:http://classes.verkoyen.eu/twitter/docs
 *
 */

/**
 * common
 */
require_once 'twitter/twitter.php';

/**
 * Twitter User/PW HatenaWebHookKey
 */
$user   = "ツイッターのID";
$pass   = "ツイッターのPW";
$key    = "はてブWebHookのキー";

/**
 * Hatena Bookmark WebHook POST
 *
 * username     ブックマーク,IDコール,スター付与ユーザid
 * title        エントリのタイトル
 * url          エントリのURL
 * count        エントリのブックマーク数
 * status       ステータス
 *                  add/update/delete
 *                  star
 *                  id_call
 *                  favorite:add
 * comment      ブックマークコメント
 * timestamp    イベント時刻(W3CDTF)
 * is_private   ブックマークの公開状態
 * key          設定キー
 * color        スターイベント時にスターの色
 * quote        スターイベント時に引用文字列
 * 
 * 文字エンコーディング UTF-8
 * 
 */

/**
 * POST
 */
if(is_array($_POST)) {
    foreach($_POST as $name => $val) {   
        $key_name = "INP_" . $name;
        if(!is_array($val)) {   
            $detect_encode = null;
            $detect_encode = mb_detect_encoding($val);
            ${$key_name} = htmlspecialchars(mb_convert_encoding($val,"UTF-8",$detect_encode), ENT_QUOTES, 'UTF-8');
            ${$key_name} = stripslashes(${$key_name});
        }       
    }       
}

/**
 * Twitter
 */
$twit   = new Twitter($user,$pass);

/**
 * 処理
 */
if($INP_key == $key) {
    $txt    = null;
    if($INP_status == "add") {
        $txt    = "[B!]" . $INP_url . "[" . $INP_count . "users]";
        $twit->updateStatus($txt);
    }
    if($INP_status == "update") {
        //$txt    = "[B!]" . $INP_url . "[" . $INP_count ."users]";
        //$twit->updateStatus($txt);
    }
    if($INP_status == "delete") {
    }
    if($INP_status == "star") {
    }
    if($INP_status == "id_call") {
    }
    if($INP_status == "favorite:add") {
    }
}else{
    echo "Error\n";
}