| | |
| | | ); |
| | | $client_id->setRequired(); |
| | | $client_id->setHint('From your Google Cloud Console OAuth credentials.'); |
| | | $client_id->makeSetupField(); |
| | | $this->updateField('client_id', $client_id); |
| | | |
| | | $secret = $this->addField( |
| | | 'client_secret', |
| | |
| | | ); |
| | | $secret->setSubType('password'); |
| | | $secret->setRequired(); |
| | | $secret->makeSetupField(); |
| | | $this->updateField('client_secret', $client_id); |
| | | |
| | | if ($this->getAccessToken()) { |
| | | $accs = $this->addField('accounts', 'Accounts', 'select', [$this, 'testUserCanConnect']); |
| | |
| | | 'Add redirect URI: <code>'.esc_html($this->getRedirectUri()).'</code>', |
| | | 'Use the "Authorize" button below to complete OAuth flow' |
| | | ]; |
| | | |
| | | $this->instructions = [ |
| | | 'Go to <a href="https://console.cloud.google.com/apis/credentials" target="_blank">Google Cloud Console</a>', |
| | | 'Create OAuth 2.0 Client ID credentials', |
| | | 'Enable the following APIs in your project:', |
| | | [ |
| | | '<a href="https://console.cloud.google.com/apis/library/mybusinessaccountmanagement.googleapis.com" target="_blank">My Business Account Management API</a>', |
| | | '<a href="https://console.cloud.google.com/apis/library/mybusinessbusinessinformation.googleapis.com" target="_blank">My Business Business Information API</a>', |
| | | '<a href="https://console.cloud.google.com/apis/library/mybusiness.googleapis.com" target="_blank">Google My Business API</a> (legacy v4, required for reviews)', |
| | | ], |
| | | 'On the OAuth consent screen, add these scopes:', |
| | | [ |
| | | '<code>https://www.googleapis.com/auth/business.manage</code>', |
| | | '<code>https://www.googleapis.com/auth/userinfo.email</code>', |
| | | '<code>https://www.googleapis.com/auth/userinfo.profile</code>', |
| | | ], |
| | | 'Add redirect URI: <code>'.esc_html($this->getRedirectUri()).'</code>', |
| | | 'Use the "Authorize" button below to complete OAuth flow' |
| | | ]; |
| | | } |
| | | protected function defineOAuth():void |
| | | { |
| | |
| | | } |
| | | protected function defineActions():void |
| | | { |
| | | $this->addAction( |
| | | 'Update Location', |
| | | [$this, 'handleUpdateLocation'], |
| | | 'update_location', |
| | | ); |
| | | if ($this->hasOAuthCredentials($this->userID)) { |
| | | $this->addAction( |
| | | 'Update Location', |
| | | [$this, 'handleUpdateLocation'], |
| | | 'update_location', |
| | | ); |
| | | } |
| | | } |
| | | public function handleUpdateLocation(array $data):array |
| | | { |