在PHP

时间:2016-07-28 10:58:11

标签: php curl hook webhooks hook.io

我正在尝试在hook.io上创建一个服务,以从另一个API加载令牌。

public function loadToken()
        {
            $computedHash = base64_encode(hash_hmac ( 'md5' , $this->authServiceUrl , $this->password, true ));
            $authorization = 'Authorization: Bearer '.$this->username.':'.$computedHash;

            $curl = curl_init();
            curl_setopt($curl, CURLOPT_POST, true);
            curl_setopt($curl, CURLOPT_POSTFIELDS, '');
            curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json' , $authorization ));
            curl_setopt($curl, CURLOPT_URL, $this->authServiceUrl);
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

            $result = curl_exec($curl);
            $obj = json_decode($result);
            $info = curl_getinfo($curl);
            curl_close($curl);

            if($info['http_code'] != '200')
            {
                // print error from the server
                echo($obj);
                return NULL;
            }

            return $obj;
        }

但事实证明hook.io并不支持PHP中的cUrl。我知道它可以直接用PHP完成,但我不知道如何。

编辑: 我现在使用了file_get_contents,它现在给出了一些其他的错误。

$username = '';
$password = '';
$authServiceUrl = '';



$computedHash = base64_encode(hash_hmac ( 'md5' , $authServiceUrl , $password, true ));
$authorization = 'Authorization: Bearer '.$username.':'.$computedHash;

// Create map with request parameters


// Build Http query using params


// Create Http context details
$contextData = array ( 
                'method' => 'POST',
                'header' => "Content-Type: application/json". $authorization ,
                 );

// Create context resource for our request
$context = stream_context_create (array ( 'http' => $contextData ));

// Read page rendered as result of your POST request
$result =  file_get_contents (
                  $authServiceUrl,  // page url
                  false,
                  $context);

我在下面的评论中添加了错误

1 个答案:

答案 0 :(得分:0)

实际上,据我所知,hook.io有卷曲支持。但是,如果您想尝试其他替代方案,可以使用pip install bs4。它支持自定义上下文和参数。

file_get_contents