使用php从New relic API获取服务器列表

时间:2014-10-24 16:09:39

标签: php curl newrelic

我尝试使用CURL php

从New Relic API获取数据
curl -X GET 'https://api.newrelic.com/v2/servers.json' \
     -H 'X-Api-Key:my-api-key' -i \

我写

    $ch = curl_init('https://api.newrelic.com/v2/servers.json');
    curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-Api-Key' => 'my-api-key']);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $data = curl_exec($ch);
    if (curl_errno($ch)) {
        print "Error: " . curl_error($ch);
    }
    curl_close($ch);
    var_dump($data);

但它不起作用并写403 New Relic API access has not been enabled我做错了什么?

2 个答案:

答案 0 :(得分:1)

如果' my-api-key'不是替换您的API密钥,而是用API密钥替换它。如果是,则验证它确实是api密钥而不是许可证密钥或数据访问密钥。 API密钥可能未激活,您可以通过转到进行检查 https://rpm.newrelic.com/accounts/ACCOUNT_NUMBER/integrations?page=data_sharing (将ACCOUNT_NUMBER替换为您的帐号ID号。)

这是一个有效的例子:

#!/usr/bin/php
<?php

//Your New Relic API key
$api_key = "1234abcd1234";

$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://api.newrelic.com/v2/servers.json',
    CURLOPT_HEADER => true, // Instead of the "-i" flag,
    CURLOPT_HTTPHEADER => array("X-Api-Key:".$api_key)
));
$resp = curl_exec($curl);
curl_close($curl); 
print_r($resp)
?>

答案 1 :(得分:0)

你好,你们都做得对,但是你的发送错误。它必须是下一个

    $ch = curl_init('https://api.newrelic.com/v2/servers.json');
    curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-Api-Key:my-api-key']);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $data = curl_exec($ch);
    if (curl_errno($ch)) {
        print "Error: " . curl_error($ch);
    }
    curl_close($ch);
    var_dump($data);

如果您的my-api-key是真正的API密钥:)