ウェピックスではウェブ界の情報をピックアップします!
menu
ホーム > PHP と Twitter > Twitter API > Tweets(ツイート) > 画像付きで「つぶやき」を投稿する update_with_media

画像付きで「つぶやき」を投稿する update_with_media

Pocket

最新版 [ Twitter API V1.1 ] はこちら

API Resource

POST statuses/update_with_media

APIの動作説明

 認証ユーザーのステータス情報(各つぶやきとそれに関連する諸々の情報)をメディアを付け加えて更新します。

ステータス情報の更新とは「つぶやき」を投稿するということです。このメソッドは画像付きで「つぶやき」を投稿するものです。

通常の ステータス更新statuses/update とは異なり、このメソッドは生のマルチパートデータを想定しています。

認証ユーザーのPOSTリクエストの Content-Type は media パラメータに multipart/form-data を指定する必要があります。

重要:メディアとのステータス更新では、ホストとしてupload.twitter.comを使用していることを確認してください。また、SSLを使用することを強くお勧めします。

Resource URL(リソースURL)

https://upload.twitter.com/1/statuses/update_with_media.format

Resource Information(リソース情報)

Rate Limited(制限) Yes(あり)
Requires Authentication(認証) Yes(あり)
Response Formats(フォーマット) json xml
HTTP Methods(HTTPメソッド) POST

Parameters(パラメーター)

status
※必須
サンプル値:文字列 ステータスアップデートのテキストを指定します。URLは必要に応じてエンコードされます。メディアを追加するとつぶやきにURLが含まれるので、文字カウントに影響が出ます。さらにメディアの完成URLとつぶやき本文との間に空白文字が追加されます。したがって、アップロードされたメディアごとにcharacters_reserved_per_mediaを考慮する必要があります。

注:現在リクエストしている characters_reserved_per_media と max_media_per_upload の値を取得するには GET help/configuration を確認下さい。

media[]
※必須
最大max_media_per_uploadの画像ファイルを指定します。

サポートされている画像フォーマットはPNG、JPGとGIFです。アニメーションGIFはサポートされていません。

注:現在リクエストしている max_media_per_upload と photo_size_limit の値を取得するには GET help/configuration を確認下さい。

possibly_sensitive
※オプション
サンプル値:true すべての閲覧者に適切でないコンテンツの場合には true を指定します。
in_reply_to_status_id
※オプション
サンプル値:123 ステータスのアップデートがreply(返信)の場合に、このパラメータで返信先のステータス情報IDを指定します。どのステータスに対するreply(返信)か明示させます。
このパラメータを指定した場合、reply(返信)元ユーザーをフォローしていても、reply(返信)先のユーザーをフォローしていないユーザーのタイムラインにはつぶやきは表示されません。「@username テキストテキスト」と同じ意になります。

reply(返信)先のステータス情報IDが存在しない場合や、非表示設定ユーザーへの場合は無効です。
アップデートステータステキストにはreply(返信)先のユーザー名を「@username」で含めて下さい。

lat
※オプション
サンプル値:37.7821120598956 ステータスアップデート場所の緯度を指定します。有効範囲は北緯が+90.0まで、南緯は-90.0まで、小数点以下8桁まで指定可能です。
有効範囲外の値を指定した場合やlongパラメータが指定されていない場合は無効になります。
long
※オプション
サンプル値:-122.400612831116 ステータスアップデート場所の軽度を指定します。有効範囲は東経が+180.0まで、西経は-180.0まで、小数点以下8桁まで指定可能です。
有効範囲外の値を指定した場合やlatパラメータが指定されていない場合は無効になります。
place_id
※オプション
サンプル値:df51dec6f4ee2b2c 世界の位置情報を指定します。
この ID は GET geo/reverse_geocode で取得することができます。
display_coordinates
※オプション
サンプル値:true ステータスアップデート場所の正確な位置を表示させるかどうか指定する。このパラメータを指定しない場合は true 扱いと同じになり、位置情報は送信されます。

サンプルコード

POINT

  • -1- tmhOAuth 接続で update_with_media を動作させます。
  • -2- 以下のURLから tmhOAuth をダウンロードして解凍ファイルとディレクトリを全てサーバーにアップロードしてください。
    アップロードは任意の場所で大丈夫です。
    サンプルでは /twittertmhoauth/・・直下に解凍ファイルとディレクトリをアップロードしております。
    tmhOAuthドキュメント:https://github.com/themattharris/tmhOAuth
    tmhOAuthダウンロードファイル:https://github.com/themattharris/tmhOAuth/downloads
  • -3- 解凍ディレクトリとファイル
    —————————
    1 directory examples /twittertmhoauth/examples
    2 file LICENSE /twittertmhoauth/LICENSE 
    3 file README.md /twittertmhoauth/README.md
    4 file cacert.pem /twittertmhoauth/cacert.pem
    5 file tmhOAuth.php /twittertmhoauth/tmhOAuth.php
    6 file tmhUtilities.php /twittertmhoauth/tmhUtilities.php
    —————————
  • -4- examplesディレクトリの中にphoto_tweet.phpファイルがあるので、ファイルの以下の箇所にtwitterアプリケーションの key や token を入力して下さい。
  • 'consumer_key'    => '******************************',
    'consumer_secret' => '*********************************************',
    'user_token'      => '*********************************************',
    'user_secret'     => '*********************************************',
    

  • -5- 以上で設定は完了です。
    ブラウザからphoto_tweet.phpファイルにアクセスして動作させてみてください。
    サンプルではつぶやきフィールドと画像選択フィールドがあります。

– サンプル Click Here ! –

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta name="robots" content="index">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>TRYPHP! Twitter API 認証ユーザーのステータス情報をメディアを付け加えて更新します。 POST statuses/update_with_media</title>
</head>
<body>

<?php
#########################################
### ページ説明
?>

<h1>Twitter API 認証ユーザーのステータス情報をメディアを付け加えて更新します。 POST statuses/update_with_media</h1>
<!-- 説明ページurl -->
<h2><a href="/phpapptwitter-update_with_media/">→説明はこちら</a></h2>
<hr/>



<?php
#########################################
### 取得したデータを展開

/**
 * Tweets a Twitter photo along with a message from the user whose oauth_token
 * and oauth_secret you use.
 *
 * Although this example uses your user token/secret, you can use
 * the oauth_token/secret of any user who has authorised your application.
 *
 * This example is intended to be run from the command line.
 *
 * Instructions:
 * 1) If you don't have one already, create a Twitter application on
 *      https://dev.twitter.com/apps
 * 2) From the application details page copy the consumer key and consumer
 *      secret into the place in this code marked with (YOUR_CONSUMER_KEY
 *      and YOUR_CONSUMER_SECRET)
 * 3) From the application details page copy the access token and access token
 *      secret into the place in this code marked with (A_USER_TOKEN
 *      and A_USER_SECRET)
 * 4) Update $image to point to a real image file on your computer.
 * 5) In a terminal or server type:
 *      php /path/to/here/photo_tweet.php
 *
 * @author themattharris
 */

### 取得したデータを展開
if(!empty($_FILES)){
	require '../tmhOAuth.php';
	require '../tmhUtilities.php';
	$tmhOAuth = new tmhOAuth(array(
	'consumer_key'    => '************************',
	'consumer_secret' => '***************************************************',
	'user_token'      => '***************************************************',
	'user_secret'     => '***************************************************',
	));

	// we're using a hardcoded image path here. You can easily replace this with
	// an uploaded image - see images.php in the examples folder for how to do this
	// 'image = "@{$_FILES['image']['tmp_name']};type={$_FILES['image']['type']};filename={$_FILES['image']['name']}",

	// this is the jpeg file to upload. It should be in the same directory as this file.
	//$image = 'image.jpg';

	$code = $tmhOAuth->request(
	  'POST',
	  'https://upload.twitter.com/1/statuses/update_with_media.json',
	  array(
	    'media[]'  => "@{$_FILES['image']['tmp_name']};type={$_FILES['image']['type']};filename={$_FILES['image']['name']}",
	    'status'   => $_POST['text'],
	  ),
	  true, // use auth
	  true  // multipart
	);

	//投稿成功
	if($code == 200){
	    echo "<h1>投稿成功</h1>\n";
	    $oJson = json_decode($tmhOAuth->response['response']);

	    echo "つぶやき:".$oJson->text."<br/>\n";
	    $oMedia = $oJson->entities->media;
	    foreach($oMedia as $value){
	        echo "画像URL:".$value->media_url."<br/>\n";
	        echo "表示URL:".$value->display_url."<br/>\n";
	    }

	    echo "<hr/>";
	    echo "<h1>取得したオブジェクト</h1>\n";
	    tmhUtilities::pr(json_decode($tmhOAuth->response['response']));
	//投稿失敗
	}else{
	    echo "<h1>投稿失敗</h1>\n";
	    echo "パラメーターを確認して下さい。<br/>\n";
	    echo "投稿内容を確認して下さい。<br/>\n";
	    echo "<hr/>";
	    echo "<h1>取得したオブジェクト</h1>\n";
	    tmhUtilities::pr($tmhOAuth->response['response']);
	}
}
?>
<hr/>



<?php
#########################################
### 投稿フォーム
?>

<h1>投稿フォーム</h1>
<form action="photo_tweet.php" method="POST" enctype="multipart/form-data">
<div>
つぶやき:<input type="text" name="text" size="30" /><br/>
画像選択:<input type="file" name="image" /><br/>
<input type="submit" value="送信" />
</div>
</form>
</body>
</html>

– サンプル Click Here ! –

サンプルコード(プロフィール画像と背景画像の差し換え)

POINT

  • -1- tmhOAuth 接続で update_with_media を動作させます。
  • -2- 以下のURLから tmhOAuth をダウンロードして解凍ファイルとディレクトリを全てサーバーにアップロードしてください。
    アップロードは任意の場所で大丈夫です。
    サンプルでは /twittertmhoauth/・・直下に解凍ファイルとディレクトリをアップロードしております。
    tmhOAuthドキュメント:https://github.com/themattharris/tmhOAuth
    tmhOAuthダウンロードファイル:https://github.com/themattharris/tmhOAuth/downloads
  • -3- 解凍ディレクトリとファイル
    —————————
    1 directory examples /twittertmhoauth/examples
    2 file LICENSE /twittertmhoauth/LICENSE 
    3 file README.md /twittertmhoauth/README.md
    4 file cacert.pem /twittertmhoauth/cacert.pem
    5 file tmhOAuth.php /twittertmhoauth/tmhOAuth.php
    6 file tmhUtilities.php /twittertmhoauth/tmhUtilities.php
    —————————
  • -4- examplesディレクトリの中にimages.phpファイルがあるので、ファイルの以下の箇所にtwitterアプリケーションの key や token を入力して下さい。
  • 'consumer_key'    => '******************************',
    'consumer_secret' => '*********************************************',
    'user_token'      => '*********************************************',
    'user_secret'     => '*********************************************',
    

  • -5- 以上で設定は完了です。
    ブラウザからimages.phpファイルにアクセスして動作させてみてください。
    サンプルではプロフィール画像のupdateか背景のupdateが選択できるようになっております。
    そのままでも動作しますし、以下のサンプルコードでも動作します。

– サンプル Click Here ! –

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<meta name="robots" content="index">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<head>
<title>TRYPHP! Twitter API 認証ユーザーのプロフィール画像と背景画像の差し換え POST statuses/update_with_media</title>
</head>
<body>

<?php
#########################################
### ページ説明
?>

<h1>Twitter API 認証ユーザーのプロフィール画像と背景画像の差し換え。 POST statuses/update_with_media</h1>
<!-- 説明ページurl -->
<h2><a href="/phpapptwitter-update_with_media/">→説明はこちら</a></h2>
<hr/>



<?php
#########################################
### 取得したデータを展開

/**
* Update the users profile image, or profile background image using OAuth.
*
* Although this example uses your user token/secret, you can use
* the user token/secret of any user who has authorised your application.
*
* Instructions:
* Instructions:
* 1) If you don't have one already, create a Twitter application on
*      https://dev.twitter.com/apps
* 2) From the application details page copy the consumer key and consumer
*      secret into the place in this code marked with (YOUR_CONSUMER_KEY
*      and YOUR_CONSUMER_SECRET)
* 3) From the application details page copy the access token and access token
*      secret into the place in this code marked with (A_USER_TOKEN
*      and A_USER_SECRET)
* 4) Visit this page using your web browser.
*
* @author themattharris
*/

### 取得したデータを展開
if(!empty($_FILES)){
?>

	<div style="background-color:#f8f8f8;margin:20px; padding:20px; border:solid #cccccc 1px;">

	<!-- // =========================== ここから =========================== -->

	<?php
	require '../tmhOAuth.php';
	require '../tmhUtilities.php';
	$tmhOAuth = new tmhOAuth(array(
	'consumer_key'    => '************************',
	'consumer_secret' => '***************************************************',
	'user_token'      => '***************************************************',
	'user_secret'     => '***************************************************',
	));

	// note the type and filename are set here as well
	$params = array(
	'image' => "@{$_FILES['image']['tmp_name']};type={$_FILES['image']['type']};filename={$_FILES['image']['name']}",
	);

	// if we are setting the background we want it to be displayed
	if ($_POST['method'] == 'update_profile_background_image')
	$params['use'] = 'true';

	$code = $tmhOAuth->request('POST', $tmhOAuth->url("1/account/{$_POST['method']}"),
	$params,
	true, // use auth
	true  // multipart
	);

	if ($code == 200){
	    echo "<h1>投稿成功</h1>\n";
	    $oJson = json_decode($tmhOAuth->response['response']);
		echo "プロフィール画像URL:".$oJson->profile_image_url."<br/>\n";
		echo "プロフィール背景画像URL:".$oJson->profile_background_image_url."<br/>\n";
	    echo "<h1>取得したオブジェクト</h1>\n";
	    tmhUtilities::pr(json_decode($tmhOAuth->response['response']));
	}else{
	    echo "<h1>投稿失敗</h1>\n";
	    echo "パラメーターを確認して下さい。<br/>\n";
	    echo "投稿内容を確認して下さい。<br/>\n";
	    echo "<hr/>";
	    echo "<h1>取得したオブジェクト</h1>\n";
	    tmhUtilities::pr(htmlentities($tmhOAuth->response['response']));
	}
	?>

	<!-- =========================== ここまで =========================== // -->
	</div>
	<hr/>

<?php
}
?>



<?php
#########################################
### 投稿フォーム
?>

<h1>投稿フォーム</h1>
<form action="images.php" method="POST" enctype="multipart/form-data">
<div>
<select name="method" id="method" >
<option value="update_profile_image">update_profile_image</option>
<option value="update_profile_background_image">update_profile_background_image</option>
</select>
<input type="file" name="image" />
<input type="submit" value="Submit" />
</div>
</form>
</body>
</html>

– サンプル Click Here ! –


タグ(=記事関連ワード)

日付

投稿日:2012年1月11日
最終更新日:2017年05月17日

関連記事

このカテゴリの他のページ

この記事へのコメント

トラックバックurl

http://wepicks.net/phpapptwitter-update_with_media/trackback/