cURL请求不发送参数

时间:2014-10-16 11:20:10

标签: php curl

我说实话我并不是100%熟悉cURL

但是我希望用它来发布一条推文,其中使用Twitters API附加图片。

我已经设置了服务器脚本以输出任何$ _GET变量。但是数组输出为空白,所以我假设我的cURL没有正确发布。

我的PHP代码如下:

$url = 'http://www.website.com/tweet.php';

$myvars = 'access_token=' . $access_token . '&access_token_secret=' . $access_token_secret . '&message=' . $message . '&image=' . $image;

$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_POST, 1);
curl_setopt( $ch, CURLOPT_POSTFIELDS, $myvars);
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt( $ch, CURLOPT_HEADER, 0);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);

$response = curl_exec( $ch );

output($response);

$ response从Twtter API返回错误:

  

[message] =>您的凭据不允许访问此资源

如果我在浏览器中运行包含所有凭据的URL,则无问题。

我错过了额外的curl_setopt吗?

干杯

1 个答案:

答案 0 :(得分:1)

我不知道这是否会有所帮助,但我必须使用cURL for Google和YouTube

我已经用你的一些替换了我的一些变量,但它可能值得一试

<?php
// init the resource
$access_token = '';
$access_token_secret = '';
$message = '';
$image = '';

$url = 'http://www.website.com/tweet.php';

$clienttoken_post = array(
    "access_token" => $access_token,
    "access_token_secret" => $access_token_secret,
    "message" => $message,
    "image" => $image
);

$curl = curl_init($url);

curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $clienttoken_post);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

$json_response = curl_exec($curl);
curl_close($curl);

print_r( $json_response );

如果不能尝试命令行

curl --data "access_token=YOUR_ACCESS_TOKEN&access_token_secret=YOUR_ACCESS_TOKEN_SECRET&message=YOUR MESSAGE&image=YOUR_IMAGE" http://www.website.com/tweet.php