Я работаю над проектом по автоматизации добавления / удаления пользователей в ITunesConnect - TestFlight для одного из моих приложений в магазине приложений.
Я использовал следующие команды, чтобы успешно добавить / удалить тестер для моего приложения с помощью инструмента fastlane pilot (https://docs.fastlane.tools/actions/pilot/).
bundle exec fastlane pilot add hareesh@test.com -a com.abc.MyApp
bundle exec fastlane pilot remove hareesh@test.com -a com.abc.MyApp
Я хотел бы сделать то же самое с помощью пользовательского интерфейса, внутренний интерфейс которогов Java. Я нашел конечные точки REST в следующих ссылках
https://github.com/fastlane/itc-api-docs/ https://github.com/fastlane/itc-api-docs#register-new-external-beta-tester
Но код, который я написал, не работает должным образом и не может добавить тестер в TestFlight.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import org.apache.http.auth.AuthenticationException;
import org.apache.http.auth.Credentials;
import org.apache.http.auth.UsernamePasswordCredentials;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.config.CookieSpecs;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.auth.BasicScheme;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.impl.client.HttpClients;
public class TestFlightCreateTester {
public static void main(String[] args) throws AuthenticationException, ClientProtocolException, IOException {
RequestConfig customizedRequestConfig = RequestConfig.custom().setCookieSpec(CookieSpecs.IGNORE_COOKIES).build();
HttpClientBuilder customizedClientBuilder = HttpClients.custom().setDefaultRequestConfig(customizedRequestConfig);
CloseableHttpClient client = customizedClientBuilder.build();
HttpPost httpPost = new HttpPost("https://itunesconnect.apple.com/WebObjects/iTunesConnect.woa/ra/users/pre/create");
UsernamePasswordCredentials creds = new UsernamePasswordCredentials("testUserName", "testPassword");
httpPost.addHeader(new BasicScheme().authenticate((Credentials) creds, httpPost,null));
String json = "{\"testers\":[{\"emailAddress\":{\"value\":\"hareesh@test.com\",\"errorKeys\":[]},\"firstName\":{\"value\":\"Hareesh\"},\"lastName\":{\"value\":\"Sarma\"},\"testing\":{\"value\":true},\"groups\":[]}]}";
StringEntity entity = new StringEntity(json);
httpPost.setEntity(entity);
httpPost.setHeader("Accept", "application/json");
httpPost.setHeader("Content-type", "application/json");
CloseableHttpResponse response = client.execute(httpPost);
BufferedReader r = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
StringBuilder total = new StringBuilder();
String line = null;
while ((line = r.readLine()) != null) {
total.append(line);
}
System.out.println(total.toString());
response.close();
}
}
Когда я запускаю приведенный выше код, я получаю следующий ответ
UnauthenticatedRequest ID: XXXXXXXXXXXXXXXX.0.0