-1

以下のコードを使用して、ステータスと画像を twitter に投稿しています。ライブラリは tmhOAuth です。イメージは、MIME タイプとファイル名と同様に、私の mysql db のブロブから取得されます。

基本的に、画像が db 行に格納されていることが判明した場合、「update_with_media」への投稿を使用して Twitter に送信します。画像が見つからない場合は、「update」を使用してステータス更新のみを送信します。「更新」は正常に機能しますが、メディアが機能している更新を取得できません。Twitter の開発者サイトを含むさまざまなサイトからいくつかのバリエーションを試しましたが、満足できませんでした。これについて何か助けていただければ幸いです。

if(!empty($imgid)) {

$getimg = mysql_query("SELECT filedata, filename, mime_type FROM post_images WHERE id = $imgid");
$img = @mysql_fetch_array($getimg); 

$imagedata = $img['filedata'];
$imagename = $img['filename'];
$imagetype = $img['mime_type'];                                     

$theimg = "@{$imagedata};type=$imagetype;filename={$imagename}";
$hasimg = "y";                  
}

if($hasimg == "y") {
    $code = $connection->request( 'POST',  
    $connection->url('https://upload.twitter.com/1/statuses/update_with_media.json'),
   array(
        'media[]'  => $theimg,
        'status'   => $thetweet),
    true, // use auth
    true  // multipart
);
} else {
    $code = $connection->request('POST', 
    $connection->url('1.1/statuses/update'), 
    array('status' => $thetweet));
}

// A response code of 200 is a success
if ($code == 200) {
  print "Tweet sent";
} else {
  print "Error: $code";
}
4

1 に答える 1

0

他の誰かが同様の問題を抱えている場合、私の問題はフォーマットでした。変数「$theimg」を使用する代わりに、

'media[]'  => $theimg, with 'media[]'  => "$imagedata; type=$imagetype; filename=$imagename"

それが誰かを助けることを願っています...

平和!

于 2013-04-23T15:06:38.043 に答える