【问题标题】:Twitter API upload with PHP OAuth使用 PHP OAuth 上传 Twitter API
【发布时间】:2012-02-27 21:41:30
【问题描述】:

几个小时以来,我一直在努力寻找最适合 Twitter 的 OAuth PHP 库。 Matt Harris 的 TmhOAuth 看起来有点臃肿(没有冒犯),并在我“安装”它后立即开始拍摄 PHP 警告和严格标准通知。

我只想通过 API 更新我的背景照片。只是我的,所以不需要任何登录和任何类型的回调,所有的键都是硬编码的。

最后我发现了PHP自己的东西:http://php.net/manual/en/book.oauth.php

看起来很酷,因为一切都有 4 行代码。身份验证有效,我可以通过 API 推送东西,但我似乎无法发送图像参数。方法是这样的:https://dev.twitter.com/docs/api/1/post/account/update_profile_background_image

我找到了一些使用上传表单的示例,但我已经将照片保存在一个文件中,那么我如何提供,引用,base64 编码的图像作为原始多部分数据 ?

$oauth->fetch
(
    'https://api.twitter.com/1/account/update_profile_background_image.json',
    array
    (
        'image' => '@' . $img_path . ';type=image/jpeg'
    ),
    'POST'
);

不起作用,而是我得到了

致命错误:未捕获的异常 'OAuthException' 带有消息“无效的身份验证/错误请求(收到 500,预期的 HTTP/1.1 20X 或重定向)”

【问题讨论】:

  • 你不能用这个编码数据吗:php.net/manual/en/function.base64-encode.php
  • 对不起,如果这显得愚蠢,但你能给我举个例子吗?我应该对图像文件的内容、路径还是整个参数进行编码...?

标签: php api twitter oauth multipart


【解决方案1】:

您可以像这样对图像进行编码:

<?php 

$im = imagecreatefromjpeg('file.jpg'); 

$im_Data = base64_encode($im); 
?>

然后您应该可以将 $img_Data 添加到 api 调用中。

【讨论】:

  • 它说“警告:base64_encode() 期望参数 1 是字符串,给定资源。”
  • 然后将参数设置为保存图像位置的字符串。从jpeg中取出imagecreate。
【解决方案2】:

我不知道这是否是一个未解决的问题,但“图像”键也必须以“@”开头。

$oauth->fetch
(
    'https://api.twitter.com/1/account/update_profile_background_image.json',
    array
    (
        '@image' => '@' . $img_path . ';type=image/jpeg'
    ),
    'POST'
);

【讨论】:

    【解决方案3】:

    如果有人感兴趣,我最终还是使用了 TmhOAuth。臃肿,但它完成了工作。

    $image = array
    (
        "@$path",
        'type=image/jpeg',
        "filename=$name"
    );
    $params = array
    (
        'image' => implode(';', $image),
        'use' => 'true'
    );
    
    // Request
    
    $code = $tmhOAuth->request('POST', $tmhOAuth->url
    (
        '1/account/update_profile_background_image'
    ),
    $params, true, true);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-17
      • 1970-01-01
      • 2011-02-25
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 2011-03-27
      相关资源
      最近更新 更多