使用PHP

时间:2016-07-03 09:30:46

标签: php api

我需要连接到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交谈 - 它将帮助我很多。 谢谢!

1 个答案:

答案 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。