0

我决定将我的网站与我的 Twitter 帐户结合起来。为了正确使用它,我想发布一条推文。我决定从这里开始使用非常简单的类 TwitterAPIExchange:https ://github.com/J7mbo/twitter-api-php

我在我的 Linux 服务器上对其进行了测试,一切正常。但我想在我的 Windows 服务器上使用这个工具。这是我的设置:Windows 2012、IIS 8、PHP。

这是我的测试代码

// Setup
$settings = array( ... );
$url = 'https://api.twitter.com/1.1/statuses/update.json';

// Post the data
$requestMethod = 'POST';

$postfields = array('status' => 'Hello World');

$twitter = new TwitterAPIExchange($settings);
$json = $twitter->buildOauth($url, $requestMethod)->setPostfields($postfields)->performRequest();

var_dump($json);

在 Windows 机器上,它返回

bool(false)

每时每刻!这意味着什么?curl和IIS有问题吗?我在网上阅读了几篇关于它的文章,但到目前为止都没有帮助我。非常感谢任何输入!

4

2 回答 2

1

卷曲给了我以下错误:

curl iis SSL certificate problem, verify that the CA cert is OK

由于我无法在 IIS 上使用证书,因此我遵循了论坛(http://board.phpbuilder.com/showthread.php?10253357-cURL-and-SSL-issues)上给出的提示,该提示告诉我添加以下卷曲选项:

curl_setopt( $ch , CURLOPT_SSL_VERIFYPEER , false );
curl_setopt( $ch , CURLOPT_SSL_VERIFYHOST , false ); 

所以最后,我将它添加到使用 curl 的 TwitterAPIExchange 类中。

于 2013-08-28T20:42:34.187 回答
0

您可能必须下载证书包并将脚本指向它。以下应该有效:

  1. 将此文件保存到与 PHP 文件相同的目录:http: //curl.haxx.se/ca/cacert.pem
  2. 添加CURLOPT_CAINFO => 'cacert.pem'到选项部分,该部分从当前代码版本的第 192 行开始:https ://github.com/J7mbo/twitter-api-php/blob/master/TwitterAPIExchange.php#L192

您还可以使用另一个有效的证书包并将其保存在其他位置,只要您在代码中包含它的路径即可。

于 2013-09-27T15:22:41.920 回答