PHP code example of cantie / app-store-connect-api
1. Go to this page and download the library: Download cantie/app-store-connect-api library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
cantie / app-store-connect-api example snippets
use AppleClient;
use AppleService_AppStore;
use Cantie\AppStoreConnect\Services\AppStore\CustomerReviewResponseV1CreateRequest;
$client = new AppleClient();
$client->setApiKey("PATH_TO_API_KEY");
$client->setIssuerId($issuerId);
$client->setKeyIdentifier($keyIdentifier);
$appstore = new AppleService_AppStore($client);
// Get apps by Bundle ID
$results = $appstore->apps->listApps([
"filter[bundleId]" => "YOUR_BUNDLE_ID" // filter LIKE
]);
// Get all customer reviews for each app
foreach ($results->getData() as $app) {
$appCustomerReviews = $appstore->apps->listAppsCustomerReviews($app->getId());
foreach ($appCustomerReviews as $appCustomerReview) {
// Print all reviewer's nickname
$appCustomerReview->getAttributes()->getReviewerNickName(), "<br /> \n";
// Get response for this review
$customerReviewResponseV1Response = $appstore->customerReviews->getCustomerReviewsResponse($appCustomerReview->getId());
// Create or update response for this review
$postBody = new CustomerReviewResponseV1CreateRequest([
'data' => [
'attributes' => [
'responseBody' => "YOUR_REPLY_TEXT_HERE"
],
'relationships' => [
'review' => [
'data' => [
'id' => $appCustomerReview->getId()
]
]
]
]
]);
$customerReviewResponseV1Response = $appstore->customerReviewResponses->createCustomerReviewResponses($postBody);
// Or just delete the response if existed
$appstore->customerReviewResponses->deleteCustomerReviewResponses($customerReviewResponseV1Response->getData()->getId());
}
}
use AppleClient;
$client = new AppleClient();
$client->setApiKey("PATH_TO_API_KEY");
$client->setIssuerId($issuerId);
$client->setKeyIdentifier($keyIdentifier);
// Optional: create new JWT token. If skip this step, token are auto generated when first request are sent
$client->generateToken();
use AppleService_AppStore;
// All resources and their methods parameters are listed in src/Service/AppStore.php
$appstore = new AppleService_AppStore($client);
// Make request, for example we call request for an Apps's resources
$appstore->apps->listAppsAppStoreVersions($APP_ID_HERE, $OPTIONAL_PARAMS);
// Firstly, we get app screenshot set step by step, we can reduce steps by creenshotCreateRequest;
use Cantie\AppStoreConnect\Services\AppStore\AppScreenshotUpdateRequest;
$appId = $app->getId(); // $app from previous example
$appStoreVersions = $appstore->apps->listAppsAppStoreVersions($appId);
// Get first app store version id;
$appStoreVersionId = $appStoreVersions->getData()[0]->getId();
// Get list localizations of this version
$appStoreVersionLocalizations = $appstore->appStoreVersions->listAppStoreVersionsAppStoreVersionLocalizations($appStoreVersionId);
// Get first localization id
$appStoreVersionLocalizationId = $appStoreVersionLocalizations->getData()[0]->getId();
// Get list app screenshot sets for this localization
$appScreenshotSets = $appstore->appStoreVersionLocalizations->listAppStoreVersionLocalizationsAppScreenshotSets($appStoreVersionLocalizationId);
// Get first set id
$appScreenshotSetId = $appScreenshotSets->getData()[0]->getId();
// Now, we make an asset reservation
$fileName = "YOUR_FILE_NAME";
$filePath = "FULL_PATH_TO_YOUR_FILE" . $fileName;
$requestCreateAppScreenshot = new AppScreenshotCreateRequest([
'data' => [
'type' => 'appScreenshots',
'attributes' => [
'fileSize' => filesize($filePath),
'fileName' => $fileName
],
'relationships' => [
'appScreenshotSet' => [
'data' => [
'type' => 'appScreenshotSets',
'id' => $appScreenshotSetId
]
]
]
]
]);
// Create new app screenshot
$appScreenshot = $appstore->appScreenshots->createAppScreenshots($requestCreateAppScreenshot);
$appScreenshotId = $appScreenshot->getData()->getId();
// Follow instruction from UploadOperation[] return in $appScreenshot to upload part or whole asset file
// We can upload parts of your asset concurrently
foreach ($appScreenshot->getData()->getAttributes()->getUploadOperations() as $uploadOperation) {
$upload = new AppleService_Upload($client, $uploadOperation); // $client from above example
$ret = $upload->uploadAssets->upload($uploadOperation, $filePath);
}
// Finally, commit the reservation
$appScreenshotUpdateRequest = new AppScreenshotUpdateRequest([
'data' => [
'type' => 'appScreenshots',
'id' => $appScreenshotId,
'attributes' => [
'sourceFileChecksum' => md5_file($filePath),
'uploaded' => true
]
]
]);
$ret = $appstore->appScreenshots->updateAppScreenshots($appScreenshotId, $appScreenshotUpdateRequest);