Create profile
From ePrize Developers Wiki
Line 1: | Line 1: | ||
{{RESTfulAPI | {{RESTfulAPI | ||
|crumbs=[[API Home Page]] :: [[Profiles]] | |crumbs=[[API Home Page]] :: [[Profiles]] | ||
- | |summary= | + | |summary=Promotions are always configured with one unique {profile-key} such as email, user_name, or mobile_phone. When creating a profile, the profile must have a {profile-value} for this key and {profile-value} must be unique within the promotion. |
- | Additional key:value pairs may be submitted. The {apikey} may enforce rules on these pairs such as required vs optional, size limits and validation. Common examples of other keys are address, birthdate and optin. The name of a key must begin with a letter and consist of only lowercase ASCII letters, numbers and underscores. | + | If profile creation is successful, a unique URL identifying the profile will be returned in the HTTP "Location" header. If tunneling is requested, the URL will be present in the body of the response in the "location" attribute on the top-level element. HTTP responses may pass through additional proxy layers which alter the case of the "Location" header--the HTTP standard requires header names to be case-insensitive. |
+ | |||
+ | Additional key:value pairs may be submitted. The {apikey} may enforce rules on these pairs such as required vs optional, size limits and validation. Common examples of other keys are address, birthdate and optin. The name of a key must begin with a letter and consist of only lowercase ASCII letters, numbers and underscores. The specific behavior depends entirely on a promotion's configuration. | ||
Typically the {apikey} will be configured to require a CAPTCHA challenge/response in the request headers of an untrusted create profile request. A failed CAPTCHA is the same as a failed validation, resulting in a response of 400 Bad Request. | Typically the {apikey} will be configured to require a CAPTCHA challenge/response in the request headers of an untrusted create profile request. A failed CAPTCHA is the same as a failed validation, resulting in a response of 400 Bad Request. | ||
Line 15: | Line 17: | ||
|request=Form Post Variables | |request=Form Post Variables | ||
email:some.email@address.com | email:some.email@address.com | ||
- | + | public1:public-value1 | |
- | + | public2:public-value2 | |
+ | ... | ||
+ | publicN:public-valueN | ||
+ | private1:private-value1 | ||
+ | private2:private-value2 | ||
... | ... | ||
- | + | privateN:private-valueN | |
|responsecode=201 Created | |responsecode=201 Created | ||
|responseloc=/v1/{apikey}/profile/{uid} | |responseloc=/v1/{apikey}/profile/{uid} | ||
Line 26: | Line 32: | ||
<id>{profile-number}</id> | <id>{profile-number}</id> | ||
<email>some.email@address.com</email> | <email>some.email@address.com</email> | ||
- | < | + | <public1>public-value1</public1> |
- | < | + | <public2>public-value2</public2> |
... | ... | ||
- | < | + | <publicN>public-valueN</publicN> |
</profile> | </profile> | ||
</result> | </result> |
Revision as of 12:49, 3 May 2010
Summary
Promotions are always configured with one unique {profile-key} such as email, user_name, or mobile_phone. When creating a profile, the profile must have a {profile-value} for this key and {profile-value} must be unique within the promotion.
If profile creation is successful, a unique URL identifying the profile will be returned in the HTTP "Location" header. If tunneling is requested, the URL will be present in the body of the response in the "location" attribute on the top-level element. HTTP responses may pass through additional proxy layers which alter the case of the "Location" header--the HTTP standard requires header names to be case-insensitive.
Additional key:value pairs may be submitted. The {apikey} may enforce rules on these pairs such as required vs optional, size limits and validation. Common examples of other keys are address, birthdate and optin. The name of a key must begin with a letter and consist of only lowercase ASCII letters, numbers and underscores. The specific behavior depends entirely on a promotion's configuration.
Typically the {apikey} will be configured to require a CAPTCHA challenge/response in the request headers of an untrusted create profile request. A failed CAPTCHA is the same as a failed validation, resulting in a response of 400 Bad Request.
This URL is an entry point. It may be easily attacked because valid URLs are easy to guess. CAPTCHA protects against automated attacks.
Example: Profile Created
Summary
This demonstrates a successful profile creation.
Request
Form Post Variables email:some.email@address.com public1:public-value1 public2:public-value2 ... publicN:public-valueN private1:private-value1 private2:private-value2 ... privateN:private-valueN
Response
HTTP Status Code: 201 Created
HTTP Redirect Location: /v1/{apikey}/profile/{uid}
<?xml version="1.0" encoding="UTF-8" ?> <result ver="1.0"> <profile> <id>{profile-number}</id> <email>some.email@address.com</email> <public1>public-value1</public1> <public2>public-value2</public2> ... <publicN>public-valueN</publicN> </profile> </result>
Example: Profile Already Exists
Summary
This demonstrates an attempted profile creation that got rejected because a profile with the unique id (email in most cases) already exists.
Response
HTTP Status Code: 409 Conflict
<?xml version="1.0" encoding="UTF-8" ?> <result ver="1.0"> <terminal_error>duplicate_account</terminal_error> </result>
Example: Invalid Request - Errors
Response
HTTP Status Code: 400 Bad Request
<?xml version="1.0" encoding="UTF-8" ?> <result ver="1.0"> <input_error> <error>VALIDATION</error> <name>field1</name> </input_error> <input_error> <name>field2</name> <error>NULL</error> </input_error> ... <input_error> <name>fieldN</name> <error>NULL</error> </input_error> </result>
Example: Invalid Request - Errors in JSON Format
Response
HTTP Status Code: 400 Bad Request
{ "result" : { "input_error" : [ { "error" : "NULL", "name" : "field1" }, { "name" : "field2" "error" : "VALIDATION", }, ... { "error" : "NULL", "name" : "fieldN" }, ] } }