c/fe

http://d.hatena.ne.jp/uzulla から移行しました。

UstreamPlayerをFlexに埋め込む

http://developer.ustream.tv/
色々かいてあるんだけど、オチとしては凄い簡単だった。

--コード部分
public function init():void{
	Security.allowDomain("ustream.tv")

	ustv=new Loader();
	ustv.contentLoaderInfo.addEventListener(Event.COMPLETE, onRslLoad);
	var applicationDomain:ApplicationDomain=ApplicationDomain.currentDomain;
	var loaderContext:LoaderContext=new LoaderContext();
	var request:URLRequest=new URLRequest("http://www.ustream.tv/flash/viewer.rsl.swf");
	loaderContext.applicationDomain=applicationDomain;
	ustv.load(request, loaderContext);
}
public function onRslLoad(event:Event):void
{
	var logicClass:Class=ustv.contentLoaderInfo.applicationDomain.getDefinition("tv.ustream.viewer.logic.Logic") as Class;
	viewer=new logicClass();
	viewer.display.width=400;
	viewer.display.height=300;
	viewer.createChannel("520983"); // CIDは各ページに埋め込まれているので、調べる
	holder.addChild(viewer.display);
}
--デザイン部分
<mx:UIComponent id="holder" x="0" y="0" width="400" height="300"/>

こんなに簡単に埋め込めるとは…。

B体のスーツしか着れない自分がにくい。
A体のスーツかっこいいんだよなー。

  • -

平家の里で田舎漬けを買った、うまい。

  • -

技術を少し知ってる(または古い技術を知ってる)人が設計すると、それにものすごく引きずられる。
保守性を考えると、どうしても定番(古い技術または広まりきってる技術)を使わざるをえない。

一括で複数ユーザーをフォローする(させる)PHP書いた。

いろんなのを切った貼ったして作った。
Services::TwitterとHTTP::OAuthが動作に必要なので、Pearなどで入れるとよい。
$twitter->setOption( 'format', 'xml' );
の行は、PHPのバージョンが新しければ(JSON関数が使えるならば)不要。


このPHPにアクセスすると、TwitterのAuthorizationページが表示されて、Allowすると指定のユーザーをフォローして、最後にCOMPLETE_URLにリダイレクトする。

define('CONSUMER_KEY', 'コンシューマーキーを入れる');
define('CONSUMER_SECRET', 'シークレットキーを入れる');
define('CALLBACK_URL',  'このPHPの設置URLを書く');
define('COMPLETE_URL',  '完了後、リダイレクトするURLを入れる');

$follow_id_array = array('uzulla','twitter_user_name' ); //フォローするユーザーのscreen nameを配列で入れる。

//--main
require_once 'Services/Twitter.php';
require_once 'HTTP/OAuth/Consumer.php';

session_start();

if (isset($_SESSION['token'], $_SESSION['token_secret'], $_GET['oauth_verifier'])) {
  $twitter = new Services_Twitter;
  $twitter->setOption( 'format', 'xml' );

  $oauth = new HTTP_OAuth_Consumer(CONSUMER_KEY, CONSUMER_SECRET, $_SESSION['token'], $_SESSION['token_secret']);
  $oauth->getAccessToken('http://twitter.com/oauth/access_token', $_GET['oauth_verifier']);
  $twitter->setOAuth($oauth);

  foreach($follow_id_array as $screenname) {
    try {
      $msg = $twitter->friendships->create($screenname);
    } catch (Exception $e) {
      //echo $e->getMessage(); // すでにフォロー済みだとエラーがでるので
    }
  }
  session_destroy();
  http_redirect( COMPLETE_URL );
} else {
  $oauth = new HTTP_OAuth_Consumer(CONSUMER_KEY, CONSUMER_SECRET);
  $oauth->getRequestToken('http://twitter.com/oauth/request_token', CALLBACK_URL);

  $_SESSION['token'] = $oauth->getToken();
  $_SESSION['token_secret'] = $oauth->getTokenSecret();

  $url = $oauth->getAuthorizeUrl('http://twitter.com/oauth/authorize');
  http_redirect($url); 
}

//--function
function http_redirect($url) { // pecl_http があれば不要
  header('Location: '.$url );
  exit;
}