2016-07-21 9 views
1

google analyticsからデータを取得する際に問題が発生しています(特定のプロファイルリスト)。 client_idなどの資格情報、秘密などがあり、ユーザーが正常にログインできるようにしていますが、次のステップでプロファイルのリスト(Webサイトのリスト)を取得する必要があります。私は Google Views (Profiles): listあたりとして公式ドキュメントを通過しましたが、私はそれを試しながら、私はエラーを取得する:エラー:Googleアナリティクスからデータを取得中の未定義のプロパティ

Undefined property: App\Http\Controllers\UserController::$analytics

詳細なエラー:

in UserController.php line 84 at HandleExceptions->handleError('8', 'Undefined property: App\Http\Controllers\UserController::$analytics', 'C:\xampp\htdocs\Laravel Projects\testApp\app\Http\Controllers\UserController.php', '84', array('request' => object(Request), 'google_redirect_url' => 'http://localhost:8000/glogin', 'gClient' => object(Google_Client), 'google_oauthV2' => object(Google_Service_Oauth2), 'guser' => null, 'user' => object(User), 'token' => array('access_token' => 'TOKEN GOES HERE', 'token_type' => 'Bearer', 'expires_in' => '3600', 'id_token' => 'ID_TOKEN GOES HERE', 'created' => 'CREATED DATA GOES HERE'))) in UserController.php line 84

私は理解しないエラーがするときがあります私はデータを取得しようとしますが、それではどうすればいいのか分かりません。誰もが考えている?助けてください!

はここにあなたが$this->analyticsを呼び出すことはありませんが、どこにも、あなたがUserControllerクラスのプロパティを定義analyticsController

class UserController extends Controller 
{ 
    public function googleLogin(Request $request) { 
    $google_redirect_url = route('glogin'); 
    $gClient = new \Google_Client(); 
    $gClient->setApplicationName(config('services.google.app_name')); 
    $gClient->setClientId(config('services.google.client_id')); 
    $gClient->setClientSecret(config('services.google.client_secret')); 
    $gClient->setRedirectUri($google_redirect_url); 
    $gClient->setDeveloperKey(config('services.google.api_key')); 

    $gClient->addScope(\Google_Service_Analytics::ANALYTICS_READONLY); 
    $gClient->addScope("email"); 
    $gClient->addScope("profile"); 
    $gClient->setAccessType("offline"); 
    $google_oauthV2 = new \Google_Service_Oauth2($gClient); 
    if ($request->get('code')){ 
     $gClient->authenticate($request->get('code')); 
     $request->session()->put('token', $gClient->getAccessToken()); 
    } 
    if ($request->session()->get('token')) 
    { 
     $gClient->setAccessToken($request->session()->get('token')); 
    } 
    if ($gClient->getAccessToken()) 
    { 
     //For logged in user, get details from google using access token 
     $guser = $google_oauthV2->userinfo->get(); 

     $request->session()->put('name', $guser['name']); 
     if ($user =User::where('email',$guser['email'])->first()) 
     { 


     }else{ 
      //register your user with response data 

      return User::create([ 
       'name' => $guser->name, 
       'email' => $guser->email, 
      ]); 
     } 

     //LINE NO 84 is below: 
     $profiles = $this->analytics->management_profiles 
      ->listManagementProfiles(); 
     $accounts = $accountsObject->getItems(); 

     return $accounts; 
     //return redirect()->route('user.glist'); 
    } else 
    { 
     //For Guest user, get google login url 
    } 
    } 
} 

答えて

1

です。親クラスControllerで何が定義されているのかよくわかりませんが、アナリティクスサービスオブジェクトにはそれが不可欠です。

Google_Service_Analyticsオブジェクトをインスタンス化する必要があります。

// Create an authorized analytics service object. 
$analytics = new Google_Service_Analytics($gclient); 

詳細はHello Analytics guideを参照してください。

+0

ああ、私はそれを逃した。ありがとう! – NewBee

関連する問題