我需要连接到Outbrain API(这是文档:http://docs.amplifyv01.apiary.io/#)。 那里有一个小例子,但当我尝试连接到我自己的帐户时,我没有设法这样做...... 无法理解,如果我把错误的CURLOPT_URL或没有以正确的形式写我的凭证......这是我的代码:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.outbrain.com/amplify/v0.1/login");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"Authorization: BASIC BASE-64-ENC(USERNAME:PASSWORD)",
"OB-TOKEN-V1: MY_ACCESS_TOKEN"
));
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
如果有人知道它为什么不起作用 - 我非常感谢... 此外,如果任何人有额外的代码与Outbrain API交谈 - 它将帮助我很多。 谢谢!
答案 0 :(得分:1)
<?php
$outbrain_user = 'xxx';
$outbrain_pass = 'xxx';
// Basic access authentication
$enc_credentials = base64_encode($outbrain_user.':'.$outbrain_pass);
$ba_authenticacion = 'Basic '.$enc_credentials;
$auth_header = array(
'Authorization: '.$ba_authenticacion
);
$outbrain_api_endpoint = 'https://api.outbrain.com/amplify/v0.1/';
// authentication
$auth_url = $outbrain_api_endpoint.'/login';
$curl = curl_init();
curl_setopt_array($curl,
array(
CURLOPT_URL => $auth_url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => $auth_header
)
);
$json_access_token = curl_exec($curl);
// parsing json object to string
$token_object = json_decode($json_access_token);
$token_array = get_object_vars($token_object);
// api access_token
$access_token = $token_array['OB-TOKEN-V1'];
在解析CURLOPT_HTTPHEADER数组时,基本上你的语法错误了, outbrain也使用基本访问身份验证,您可以在此处查看文档https://en.wikipedia.org/wiki/Basic_access_authentication。 使用此代码,您可以从outbrain返回access_token。