Matt,
I tried changing my script to generate a gif, and my issues with
twitter dissapeared, but my image was no longer rendering properly so
I switched the output back to png and added the mimetype to the image
data, but now I'm not getting any response.
foreach($_POST as $key => $var){
$POST[$key] = htmlspecialchars($var,ENT_QUOTES);
}
if($POST['twittername'] != '' && $POST['twitterpass'] != ''){
$url = 'http://twitter.com/users/show/' . urlencode($POST
['twittername']) . '.xml';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_NOBODY, 0);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION,1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($curl);
curl_close($curl);
$user = new SimpleXMLElement($response);
$image_array = explode('.',$user->profile_image_url);
$filename = $POST['twittername'] . '-' . time() . '.png';
$badge = imagecreatefrompng($POST['badge']);
switch($image_array[(sizeof($image_array) - 1)]){
case 'jpg':
$avatar =
imagecreatefromjpeg($user->profile_image_url);
break;
case 'png':
$avatar =
imagecreatefrompng($user->profile_image_url);
break;
case 'gif':
$avatar =
imagecreatefromgif($user->profile_image_url);
break;
default:
$avatar =
imagecreatefrompng($user->profile_image_url);
break;
}
imagealphablending($badge,1);
imagealphablending($avatar,1);
imagecopy($avatar,$badge,0,0,0,0,48,48);
imagepng($avatar,$filename);
//*
$url = 'http://twitter.com/account/update_profile_image.xml';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "$url");
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Expect:'));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 4);
curl_setopt($curl, CURLOPT_POSTFIELDS,array('image' => "@
$filename;type=image/png"));
curl_setopt($curl, CURLOPT_USERPWD, $POST['twittername'] . ':' .
$POST['twitterpass']);
$response = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
imagedestroy($badge);
imagedestroy($avatar);
unlink($filename);
// */
On Jan 19, 12:18 pm, Matt Sanford <[email protected]> wrote:
> Hi Kevin,
>
> I find that error message misleading. If the image could not be
> processed for any reason the error says "possibly too big". That's
> normally the case with user uploads but it seems like from the API
> it's more often something else. Looking back through the Google Group
> it seems like GIF is predominantly the issue. If you create a similar
> 1x1 PNG does it do the same thing? We support GIF and it should work,
> but knowing what works and what doesn't will help narrow it down.
>
> Thanks;
> — Matt Sanford / @mzsanford
>
> On Jan 19, 2009, at 10:01 AM, DeBetta wrote:
>
>
>
> > I just tested the update_profile_image API call and sent a 190K image
> > without issue.
>
> > What kind of image are you trying to post? Do you have sample code you
> > can share?
>
> > --Peter
>
> > On Jan 19, 11:16 am, Kevin Thompson <[email protected]> wrote:
> >> I'm attempting to write a simple script to update the user's profile
> >> image, but I am getting a response that the image is possible too big
> >> each time. The file that I'm attempting to set as the user avatar is
> >> no larger than 5k, and it fails.
>
> >> I created a 1px by 1px white gif which weighed in at about 43 bytes
> >> and it worked.
>
> >> My suspicion is that for some reason the API is not correctly
> >> calculating the file size of the image data, or it's checking for a
> >> much smaller value than 700k.
>
>