Twitterで複数アカウント使ってる場合に、プロフィール画像 等を一緒に変更するのが面倒くさいので、PHPスクリプトをCRONで叩けば同期できるようにしてみました。
TwitterAPIが必要なため、事前に承認作業をしとく必要があります。
TwitterOAuthでは画像のPOSTが難しい?らしく、ググッて引っかかったUltimateOAuthを使用させていただくことにしました。
[UltimateOAuth]
https://github.com/danielsum/UltimateOAuth/
コードは以下。
<?php
$consumer_key = " "; // Consumer keyの値
$consumer_secret = " "; // Consumer secretの値
$access_token = " "; // Access Tokenの値
$access_token_secret = " "; // Access Token Secretの値
$ultimateoauth = "UltimateOAuth.php";
require_once($ultimateoauth);
// OAuthオブジェクト生成
$uo = new UltimateOAuth($consumer_key,$consumer_secret,$access_token,$access_token_secret);
$result = $uo->OAuthRequest(
"https://api.twitter.com/1.1/users/show.json",
"GET",
array( "user_id"=>"*********" ) //プロフィール取得対象のユーザID
);
/*** プロフィールイメージの処理 ***/
//大きいサイズのプロフィールイメージURLを取得
$profileImageUrl = str_replace('_normal', '', $result->profile_image_url );
$profileImage = file_get_contents( $profileImageUrl );
$uo->OAuthRequest(
"https://api.twitter.com/1.1/account/update_profile_image.json",
"POST",
array('image' => base64_encode($profileImage) )
);
/*** バックグラウンドイメージの処理 ***/
$profile_banner_image = file_get_contents( $result->profile_banner_url );
$uo->OAuthRequest(
"https://api.twitter.com/1.1/account/update_profile_banner.json",
"POST",
array('banner' => base64_encode($profile_banner_image) )
);
/*** プロフィールメッセージの処理 ***/
$uo->OAuthRequest(
"https://api.twitter.com/1.1/account/update_profile.json",
"POST",
array('description' => $result->description )
);

コメント