代码之家  ›  专栏  ›  技术社区  ›  Carlos Salazar

如何在laravel中使用awssdk嵌入quicksight仪表板?

  •  0
  • Carlos Salazar  · 技术社区  · 6 年前

    我有一个 laravel 5.3 我需要展示一个项目 aws quicksight 图,我的问题是我不知道如何从AWS SDK获取图嵌入url。

    我在一个 lambda-node 项目成功了,但在laravel,它又回来了 {}

    这是我的代码,它没有显示任何错误 status 200

    <?php
    
    namespace App\Http\Controllers;
    
    use Aws\QuickSight\QuickSightClient; 
    use Illuminate\Http\Request;
    use App\Models\QuicksightDashboard;
    
    class DashboardController extends Controller
    {
        //
        public function getDashboard($id) {
            $dashboards = QuicksightDashboard::find($id);
            $quick = new QuickSightClient([
                'version' => 'latest',
                'region'  => 'us-east-1',
                'credentials' => [
                  'key'    => '...',
                  'secret' => '...',
                ]
            ]);
    
            $result = $quick->GetDashboardEmbedUrl([
                'AwsAccountId' => '...',
                'DashboardId' => '...',
                'IdentityType' => 'IAM',
                'ResetDisabled' => true,
                'SessionLifetimeInMinutes' => 600,
                'UndoRedoDisabled' => false
            ]);
            return response()->json([
                'code' => 200,
                'message' => 'Operation successfull',
                'dashboard' => $result,
            ]);
        }
    }
    
    

    正如我之前提到的,我正在传递正确的证书和权利 accountId 和 dashboardId 我还缺少什么?

    0 回复  |  直到 6 年前
        1
  •  0
  •   Carlos Salazar    6 年前

    我必须归还我想要的田地才能让它工作。

    return $quick->GetDashboardEmbedUrl([
                'AwsAccountId' => '...',
                'DashboardId' => '...',
                'IdentityType' => 'IAM',
                'ResetDisabled' => true,
                'SessionLifetimeInMinutes' => 600,
                'UndoRedoDisabled' => false
            ])->get('EmbedUrl');
    

    这样我就得到了嵌入url。