Skip to content
This repository was archived by the owner on Sep 15, 2025. It is now read-only.

Commit 96ba9cc

Browse files
authored
Merge pull request #181 from wordpress-mobile/feature/create_account_with_apple
Add method to create WP account with Apple ID
2 parents 0312a60 + 16c7d18 commit 96ba9cc

File tree

4 files changed

+57
-12
lines changed

4 files changed

+57
-12
lines changed

WordPressKit.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Pod::Spec.new do |s|
22
s.name = "WordPressKit"
3-
s.version = "4.4.0"
3+
s.version = "4.5.0-beta.1"
44
s.summary = "WordPressKit offers a clean and simple WordPress.com and WordPress.org API."
55

66
s.description = <<-DESC

WordPressKit/WordPressComServiceRemote.h

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,26 @@ typedef void(^WordPressComServiceFailureBlock)(NSError *error);
4848
success:(WordPressComServiceSuccessBlock)success
4949
failure:(WordPressComServiceFailureBlock)failure;
5050

51+
/**
52+
* @brief Create a new WordPress.com account from Apple ID credentials.
53+
*
54+
* @param token Token provided by Apple.
55+
* @param email Apple email to use for new account.
56+
* @param fullName The user's full name for the new account. Formed from the fullname
57+
* property in the Apple ID credential.
58+
* @param clientID wpcom client ID.
59+
* @param clientSecret wpcom secret.
60+
* @param success success block.
61+
* @param failure failure block.
62+
*/
63+
- (void)createWPComAccountWithApple:(NSString *)token
64+
andEmail:(NSString *)email
65+
andFullName:(NSString *)fullName
66+
andClientID:(NSString *)clientID
67+
andClientSecret:(NSString *)clientSecret
68+
success:(WordPressComServiceSuccessBlock)success
69+
failure:(WordPressComServiceFailureBlock)failure;
70+
5171
/**
5272
* @brief Validates a WordPress.com blog with the specified parameters.
5373
*

WordPressKit/WordPressComServiceRemote.m

Lines changed: 36 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,47 @@ - (void)createWPComAccountWithEmail:(NSString *)email
6464
[self.wordPressComRestApi POST:requestUrl parameters:params success:successBlock failure:failureBlock];
6565
}
6666

67-
// API v1 POST /users/social/new
6867
- (void)createWPComAccountWithGoogle:(NSString *)token
6968
andClientID:(NSString *)clientID
7069
andClientSecret:(NSString *)clientSecret
7170
success:(WordPressComServiceSuccessBlock)success
7271
failure:(WordPressComServiceFailureBlock)failure
72+
{
73+
NSDictionary *params = @{
74+
@"client_id": clientID,
75+
@"client_secret": clientSecret,
76+
@"id_token": token,
77+
@"service": @"google",
78+
@"signup_flow_name": @"social",
79+
};
80+
81+
[self createSocialWPComAccountWithParams:params success:success failure:failure];
82+
}
83+
84+
- (void)createWPComAccountWithApple:(NSString *)token
85+
andEmail:(NSString *)email
86+
andFullName:(NSString *)fullName
87+
andClientID:(NSString *)clientID
88+
andClientSecret:(NSString *)clientSecret
89+
success:(WordPressComServiceSuccessBlock)success
90+
failure:(WordPressComServiceFailureBlock)failure
91+
{
92+
NSDictionary *params = @{
93+
@"client_id": clientID,
94+
@"client_secret": clientSecret,
95+
@"id_token": token,
96+
@"service": @"apple",
97+
@"signup_flow_name": @"social",
98+
@"user_email": email,
99+
@"user_name": fullName,
100+
};
101+
102+
[self createSocialWPComAccountWithParams:params success:success failure:failure];
103+
}
104+
105+
- (void)createSocialWPComAccountWithParams:(NSDictionary *)params
106+
success:(WordPressComServiceSuccessBlock)success
107+
failure:(WordPressComServiceFailureBlock)failure
73108
{
74109
void (^successBlock)(id, NSHTTPURLResponse *) = ^(id responseObject, NSHTTPURLResponse *httpResponse) {
75110
success(responseObject);
@@ -80,16 +115,7 @@ - (void)createWPComAccountWithGoogle:(NSString *)token
80115
failure(errorWithLocalizedMessage);
81116
};
82117

83-
NSDictionary *params = @{
84-
@"client_id": clientID,
85-
@"client_secret": clientSecret,
86-
@"id_token": token,
87-
@"service": @"google",
88-
@"signup_flow_name": @"social",
89-
};
90-
91118
NSString *requestUrl = [self pathForEndpoint:@"users/social/new" withVersion:ServiceRemoteWordPressComRESTApiVersion_1_0];
92-
93119
[self.wordPressComRestApi POST:requestUrl parameters:params success:successBlock failure:failureBlock];
94120
}
95121

WordPressKitTests/WPStatsServiceRemoteTests.m

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -865,7 +865,6 @@ - (void)testPostDetails
865865
XCTAssertNotNil(monthsYearsItems);
866866
XCTAssertTrue([[monthsYearsItems[0] label] isEqualToString:@"2014"]);
867867
XCTAssertTrue([[monthsYearsItems[1] label] isEqualToString:@"2015"]);
868-
XCTAssertTrue([[[monthsYearsItems[0] children][0] label] isEqualToString:@"June"]);
869868

870869
XCTAssertNotNil(averagePerDayItems);
871870
XCTAssertEqual(2, averagePerDayItems.count);

0 commit comments

Comments
 (0)