elbot/majestic-seo-laravel-api

一个用于集成 Majestic SEO API 的 Laravel 扩展包,让您轻松获取并分析网站 SEO 指标和数据。

1.1.1 2023-08-07 09:14 UTC

This package is auto-updated.

Last update: 2024-09-07 11:31:34 UTC


README

此包提供了一种方便的方式,在 Laravel 应用中与 Majestic SEO API 交互。

安装

您可以通过 Composer 安装此包

composer require elbot/majestic-seo-laravel-api

使用方法

首先,请确保您已在 Laravel 配置文件(config/services.php)中配置了 Majestic API 密钥

'majestic' => [
    'api_key' => env('MAJESTIC_API_KEY'),
]

使用您的 API 密钥创建一个 MajesticService 实例,然后准备命令所需的参数,并调用命令:(注意,“app_api_key”和“cmd”将被添加)

use Elbot\Majestic\ApiService;

private function getIndexItemInfo() {
    $apiKey = config('services.majestic.api_key');
    $majesticService = new ApiService($apiKey); // live
    // $majesticService = new ApiService($apiKey, $sandbox = true); // dev
    
    $string_urls = "example.com, example2.com, example3.com"; // string format urls
    $parameters = $this->prepareItemsParameter($string_urls); // gets items count and structures each item
    $parameters["DesiredTopics"] = 5; // add any custom parameters you would like to set
    
    $response = $majesticService->executeCommand("GetIndexItemInfo", $parameters); // execute command
    
    if ($response->isOK()) {
        $output = $this->processResponse($response);
    } else {
        $error = $response->getErrorMessage();
        // Handle the error
    }
}

辅助函数

您可以在控制器中使用以下辅助函数

prepareItemsParameter($itemsToQuery): 准备 API 请求的 items 参数。processResponse($response): 处理 API 响应以提取数据。以下是对这些辅助函数的示例实现

private function prepareItemsParameter($itemsToQuery) {
    $items = preg_split("/, /", $itemsToQuery, -1);

    $parameters = [];
    for ($i = 0; $i < count($items); $i++) {
        $parameters["item" . $i] = $items[$i];
    }

    $parameters["items"] = count($items);
    $parameters["datasource"] = "fresh";

    return $parameters;
}

private function processResponse($response) {
    $results = $response->getTableForName('Results');
    $output = [];

    foreach ($results->getTableRows() as $row) {
        $item = $row['Item'];
        $itemInfo = [];

        $keys = array_keys($row);
        sort($keys);
        foreach ($keys as $key) {
            if ($key != "Item") {
                $value = $row[$key];
                $itemInfo[$key] = $value;
            }
        }

        $output[$item] = $itemInfo;
    }

    return $output;
}

许可证

此包是开源软件,根据 MIT 许可证授权。