Julio
Julio

Reputation: 31

How to save data from a request to mysql in laravel

I would like to save the information that I am receiving in the response of a request, in this case the "access_token" field, to my mysql database, here is the code:

My controller, here I make a post request to have the access token:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;

class AuthsController extends Controller
{

    public function SocialAuth(Request $request)
    {

        $a = $request->input('auth_code');

        // URL
        $apiURL = 'https://business-api.tiktok.com/open_api/v1.3/oauth2/access_token/';

        // POST Data
        $postInput = [
            'app_id' => '7112335319877287',
            'secret' => '18f52730856f43ed821187bfa9283794ca360e',
            'auth_code' => $a
        ];

        // Headers
        $headers = [
            //...
        ];

        $response = Http::withHeaders($headers)->post($apiURL, $postInput);

        $statusCode = $response->getStatusCode();
        $responseBody = json_decode($response->getBody(), true);

        echo $statusCode;  // status code

        dd($responseBody); // body response


    }
}

Response of my request, the value that I want to save to mysql is the access token

^ array:4 [▼
  "code" => 0
  "message" => "OK"
  "request_id" => "202211281314430102451411010AF4AA0A"
  "data" => array:3 [▼
    "access_token" => "fbcaa610339b7aeb39eabf29346d06a4e7fe9"
    "advertiser_ids" => array:1 [▶]
    "scope" => array:18 [▶]
  ]
]

How can I save the access token in mysql?

create a table with the following columns, for storage:

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateTokenTableTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('token_table', function (Blueprint $table) {
            $table->integer('id_token')->primary();
            $table->string('token')->nullable();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('token_table');
    }
}

Upvotes: 0

Views: 439

Answers (1)

Ibrahim Hammed
Ibrahim Hammed

Reputation: 880

Use your token Model and save the data

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Http;
// call your token Model class
use App\Models\TokenTable

class AuthsController extends Controller
{

    public function SocialAuth(Request $request)
    {

        $a = $request->input('auth_code');

        // URL
        $apiURL = 'https://business-api.tiktok.com/open_api/v1.3/oauth2/access_token/';

        // POST Data
        $postInput = [
            'app_id' => '7112335319877287',
            'secret' => '18f52730856f43ed821187bfa9283794ca360e',
            'auth_code' => $a
        ];

        // Headers
        $headers = [
            //...
        ];

        $response = Http::withHeaders($headers)->post($apiURL, $postInput);

        $statusCode = $response->getStatusCode();
        $responseBody = json_decode($response->getBody(), true);

        echo $statusCode;  // status code
        //check if status code is 200
        if($statusCode == 200){
           TokenTable::create([
              'token' => $responseBody['data']->access_token
           ]);
           echo 'ok';
        }



    }
}

or this

if($statusCode == 200){
   TokenTable::create([
      'token' => $responseBody['data']['access_token']
   ]);
   echo 'ok';
}

Upvotes: 1

Related Questions