tmhOauth update_with_media使用标签禁止

时间:2014-11-21 23:43:43

标签: php twitter

我正在使用tmhOauth库将状态发布到twitter。

当我尝试使用其中带有主题标签的update_with_media时,为什么我得到403。下面是完整的代码。

session_start();
require 'tmhOAuth.php';

$tmhOAuth = new tmhOAuth(array(
    'consumer_key'              => 'MYKEY',
    'consumer_secret'           => 'MYSECRET',
    'curl_ssl_verifypeer'       => false
));

if(isset($_GET['oauth_verifier'])){
    $tmhOAuth->config['user_token']  = $_SESSION['oauth']['oauth_token'];
    $tmhOAuth->config['user_secret'] = $_SESSION['oauth']['oauth_token_secret'];

    $code = $tmhOAuth->request(
        'POST',
        $tmhOAuth->url('oauth/access_token', ''),
        array(
          'oauth_verifier' => $_GET['oauth_verifier']
        )
    );

    if($code == 200){
        $_SESSION['access_token'] = $tmhOAuth->extract_params($tmhOAuth->response['response']);

        $tmhOAuth->config['user_token']  = $_SESSION['access_token']['oauth_token'];
        $tmhOAuth->config['user_secret'] = $_SESSION['access_token']['oauth_token_secret'];

        $base64_data = file_get_contents($_SESSION['twitter_image_data']);

        $status = <<<EOD

You can see yourself at Catholic U, too! Go to somelink.com to check out this cool app!
#hashtag
EOD;

        echo strlen($status);
        $params = array(
            'media[]' => "{$base64_data};type=image/jpeg;filename=myimage.jpg",
            'status'  => $status
        );

        $response = $tmhOAuth->user_request(array(
            'method' => 'POST',
            'url' => $tmhOAuth->url("1.1/statuses/update_with_media"),
            'params' => $params,
            'multipart' => true
        ));

        print_r($response);

        if($response == 200){
            ?>
            <pre>Your image has been uploaded to twitter. this window will be closed in 3 seconds...</pre>
            <script>
                setTimeout(function(){
                    window.close();
                }, 3000);
            </script>
            <?php
        }

        unset($_SESSION['oauth']);
        unset($_SESSION['twitter_image_data']);
    }
}

无论如何调试它? $response仅返回响应号。请帮忙

1 个答案:

答案 0 :(得分:1)

由于某种原因,当您访问要尝试访问的页面或资源时,您遇到403错误。您应该检查网址错误,并确保您指定实际的网页文件名和扩展名,而不仅仅是目录。