http://channy.creation.net/project/twi2me/code.html

1. 요구 사항

  • PHP 5.0+ 및 Cron 작업 환경
  • Twitter API 및 JSON, Me2 PHP 라이브러리

2. 서비스 단계

  1. Me2day 애플리케이션키를 발급 받고 자신의 사용자키를 환경 설정 화면에서 발급 받는다.
  2. Twitter API 및 JSON, Me2 PHP 라이브러리를 다운로드 받는다.
  3. 아래 소스 코드에 애플리케이션 키, 사용자키, 트위터 아이디 등을 설정한다.
    01.#!/usr/bin/php
    02.<?php
    03.// Include library
    04.require_once("lib/twitter.lib.php");
    05.require_once("lib/JSON.php");
    06.require_once("lib/Me2.php");
    07. 
    08.//Account information
    09.Me2Api::$applicationKey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'; // application key
    10.$me2_id = new Me2AuthenticatedUser('channy', 'xxxxxxxxx'); // user key
    11.$twitter_id = 'channyun';
    12. 
    13.// Setting up JSON and Twitter Library
    14.$json = new Services_JSON();
    15.$twitter = new Twitter($twitter_id,'');
    16. 
    17.$twitter_messages = $twitter->getUserTimeline('json', $twitter_id);
    18.$result = $json->decode($twitter_messages);
    19. 
    20.// catching last job time
    21.$last_job_time= strtotime("-10 minute")."\n";
    22. 
    23.foreach($result as $value) {
    24.// Writing messages that written in more than last job time.
    25.if($last_job_time < strtotime($value->created_at)) {
    26.$post = $me2_id->post(twitter_parse($value->text), 'twitter', 9);
    27.}
    28.}
    29. 
    30. 
    31.// Parsing twitter text into me2day syntax
    32.function twitter_parse($str) {
    33.$str=explode("\n",$str);
    34.$str=implode("\n ",$str);
    35.$str=" ".$str;
    36. 
    37.// case of urls
    38.$str = eregi_replace( ">http://([a-z0-9\_\-\.\/\~\@\?\=\;\&\#\-]+)",">\"http://\\1\":", $str);
    39.$str = eregi_replace( "\(http://([a-z0-9\_\-\.\/\~\@\?\=\;\&\#\-]+)\)","(\"http://\\1\":http://\\1 )", $str);
    40.$str = eregi_replace( "  http://([a-z0-9\_\-\.\/\~\@\?\=\;\&\#\-]+)","  \"http://\\1\":http://\\1 ", $str);
    41.$str = eregi_replace( " http://([a-z0-9\_\-\.\/\~\@\?\=\;\&\#\-]+)", " \"http://\\1\":http://\\1 ", $str);
    42.// case of replies
    43.$str = eregi_replace(" (@[a-z0-9-]{1,})", " \"\\1\":http://twitter.com/\\1 ",$str);
    44.$str = eregi_replace("com/@", "com/", $str);
    45.// case of hashtag
    46.$str = eregi_replace(" (#[a-z0-9-]{1,})", " \"\\1\":http://search.twitter.com/search?q=\\1 ", $str);
    47. 
    48.return $str;
    49.}
    50.?>
  4. Cron 작업에 아래와 같이 10분에 한번씩 작업을 걸어둔다.
    1.0,10,20,30,40,50 * * * * /project/twi2me/cron.php&

+ Recent posts