Tumblr API从HTML画布发布照片

问题描述:

我有一些问题试图让我的代码将HTML画布作为照片发布到Tumblr。我使用PHP,并在服务器端的代码如下:Tumblr API从HTML画布发布照片

if(isset($_POST['postphoto']) and $_SESSION['loggedin']) { 
    $title = $_POST['title']; 
    $caption = $_POST['caption']; 
    tags = $_POST['tags']; 
    $imageData = $_POST['imageData']; 
    $imageData = substr($imageData,strpos($imageData,",")+1); 
    $imageData = str_replace(' ','+',$imageData); 

    # Set access token 
    $tumblr->set_token($_SESSION['oauth_token'], $_SESSION['oauth_token_secret']); 

    $data = array(); 
    $data['post'] = array(
     'type' => 'photo', 
     'generator' => 'AppName', 
     'data' => $imageData, 
     'name' => $title, 
     'caption' => $caption, 
     'tags' => $tags 
    ); 

    $response = $tumblr->fetch('http://www.tumblr.com/api/write', $data); 

    if($response['successful']) { 
     echo "Update successful!<br><br>"; 
    } else { 
     echo "Update failed. {$response[body]}<br><br>"; 
    } 
} 

在JavaScript端,我有以下几点:

var imgData = canvas.toDataURL("image/png");    
$("#imageData").val(imgData); 

的imageData是表单类型隐藏所以我干脆的设置值。整个表单然后发布到PHP端。我已经检查并且值正确地传递了(我为TwitPic做了类似的事情,因为它只需要toDataURL值,但Tumblr给出了很多问题)。

感谢您的帮助! :)

+1

最后,我通过让PHP首先将dataURL(base64)写入临时映像文件,然后将该映像文件作为源(而不是数据,请参阅Tumblr api)来解决此问题。 – Wysie

+0

愚蠢的问题:你使用enctype =“multipart-formdata”? – Paddy

+0

嗨,稻田!试过了,它不起作用(并且应该不重要,因为base64编码数据在通过时被视为字符串)。如我错了请纠正我。 – Wysie

这可能是因为你张贴照片帖子的标题?
照片帖子没有标题。当我删除'name' => $title,时,让我知道它是否有效。