trustpilot_api
Client for consuming Trustpilot API as a service. At this time the module does not include any site builder components for Trustpilot, only a service for developers.
Technical Details
By default (with API credentials), the Trustpilot API service client can access any public endpoints. To access private endpoints, you must provide additional authentication details on the module's settings page. Once provided, the client can perform requests authenticating with OAuth.
Endpoints
Endpoints are annotation Plugins with the following properties:
id- Machine name for endpoint plugin.name- Human name for endpoint plugin.pathmethodauthType- Endpoint's authentication requirements. EitherkeyoroauthdocumentationUrl- Each endpoint provides a link to the Trustpilot API documentation. This can be found on the module's "Test" form.defaultRequestParams- Default values for any request parameters documented in the Trustpilot API docs.headers- Endpoint specific header requirements.
With these properties defined at the annotation level, many endpoints require no additional code beyond these annotations. See BusinessUnitReviews endpoint as an example of this.
References:
Example using the Trustpilot API client service
Using the client service, get the Trustpilot Endpoint plugin instance by machine name (id). Then use the client to perform a request to that endpoint, passing in additional
Endpoint options as the second request() method parameter.
This example assumes you've provided a Default Business Unit in the settings form. If you have not, then the businessUnitId value must be passed along to the endpoint parameters.
/** @var \Drupal\trustpilot_api\TrustpilotApiClientInterface $client */
$client = \Drupal::service('trustpilot_api.client');
$endpoint = $client->getEndpointPluginManager()->createInstance('business_unit_reviews');
$data = $client->request($endpoint, [
'perPage' => 3,
'stars' => [3,4,5],
]);