如何根据存储在数据库中的 apikey 根据 userid 从 mailchimp 获取列表

How to get lists from mailchimp based on apikey which is stored in database against userid

我正在尝试根据 api 密钥从 mailchimp 获取列表,该密钥存储在针对 user_id 的数据库中。我正在获取基于 api 密钥的所有列表,该密钥存储在 laravel 的配置文件中。但在这里我想根据存储在数据库中的 api 密钥从 mailchimp 获取列表。

我用来根据配置文件中的 apikey 获取所有列表的代码是:

public function getLists(Request $request)
{
    $request->user()->id;
    $result = MailchimpFacade::request( 'lists', ['fields' => 'lists.id,lists.name'] );
    $resultArray = ['status' => 1, 'message' => 'Lists appear successfully!', 'dataArray' => $result];
    return \Illuminate\Support\Facades\Response::json($resultArray, 200);
}

这里我想根据存储在数据库中的 apikey 从 mailchimp 获取列表。 非常感谢您的宝贵时间和帮助!

public function getLists (Request $request)
{
    $request->user()->id;
    $mc = new MailChimp($request->input('api_key'));
    $result = $mc->get('/ping');
    return \Illuminate\Support\Facades\Response::json($result, 200);
}

<?php

    namespace App\Http\Controllers;

    use App\APIKEY;
    use DrewM\MailChimp\MailChimp;
    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\DB;
    use Illuminate\Support\Facades\Response;
    use Illuminate\Support\Facades\Validator;

    class ApiController extends Controller
    {
        public function getLists (Request $request)
        {
            $request->user()->id;
            $mc = new MailChimp($request->input('api_key'));
            $result = $mc->get('/ping');

            return \Illuminate\Support\Facades\Response::json($result, 200);
        }
    }



                      public function getLists(Request $request)
{
     Auth::user()->id;
        $apikey = $request->input('api_key');
        DB::table('apikey')
        ->where('api_key','=', $apikey)
     ->get();
    if($apikey){
        $mc = new MailChimp($apikey);
        $mailchimp_ping = $mc->get('lists',['fields' => 'lists.id,lists.name'] );
        return \Illuminate\Support\Facades\Response::json($mailchimp_ping, 200);

    }
    else
    {        $errorResponse = [
            'message' => 'Lists not found!',
            'error' => '401'
        ];
        return Response::json( $errorResponse);
    }
}

使用 DrewM\MailChimp\MailChimp 而不是 Facade

use DrewM\MailChimp\MailChimp;

$mc = new MailChimp($apikey);
$result = $mc->get('lists');

print_r($result);

完全控制器,根据您的需要进行编辑-

<?php

namespace App\Http\Controllers;

use DrewM\MailChimp\MailChimp;

class ApiController extends Controller
{
    public function authenticateApiKey()
    {
        $mc = new MailChimp('48cda414960152d55f97a8f44e28ea20-us17');
        $mailchimp_ping = $mc->get('lists');
        return \Illuminate\Support\Facades\Response::json($mailchimp_ping, 200);
    }
}

有关详细信息,请参阅 this