2009-09-28 24 views
1

来自Twitter的API部分。使用API​​和多表单数据的Twitter背景上传

为什么我的图片上传总是失败? 图像更新方法需要 多部分表单数据。他们不要 接受一个图像的URL,他们不接受原始图像的字节 。他们 而是要求数据为 以文件上传的形式交付。

有没有人得出这个结论,还是解决了这个问题?我在尝试发布图片时遇到了各种麻烦。 我环顾四周,发现没有解决方案。

+0

您可能需要详细了解如何发布图像以及问题是什么。 – rojoca 2009-09-28 02:48:02

+0

这就是我以前在做的。 http://stackoverflow.com/questions/1483163/updating-twitter-background-via-api – Homework 2009-09-28 05:22:04

回答

2

你有什么确切的问题?从API的声音,你只需要做一个常规的文件上传到Twitter本身。下面,您可以将文件上传到服务器,并通过API docs将其推到Twitter:

<?php 
    if($_POST) { 
     // Do anything needed for authentication 
     $ch = curl_init('http://twitter.com/account/update_profile_background_image.xml'); 
     curl_setopt_array(array(
      CURLOPT_POSTFIELDS => array('image' => '@'.$_FILES['myfile']['tmp_name']), 
      CURLOPT_RETURNTRANSFER => true, 
      CURLOPT_POST => true, 
     )); 

     $rsp = curl_exec($ch); 
     // Read the response 
    } 
?> 
<form enctype="multipart/form-data" method="post"> 
    File: <input type="file" name="myfile" /> 
    <input type="submit"> 
</form> 

更多信息可以在PHP documentationcURL documentation为PHP找到。

+0

我该如何将它添加到你写的内容? $ content = $ to> OAuthRequest('http://twitter.com/account/update_profile_background_image.xml',array('profile_background_image_url'=> $ html),'POST'); – Homework 2009-09-28 05:06:29

+1

显然,回答这个问题的人根本没有测试过代码。例如,curl_setopt_array需要curl_setopt_array($ ch,array(...)而不是curl_setopt_array(array()。所有答案都失败。 – Unreality 2009-12-28 03:10:42

+0

代码可能不能按原样写入,但它完全可能给出原始海报一个关于正确方向的线索 – ceejayoz 2009-12-28 03:30:58