smugmug.login.withPassword
Establishes a session and logs a user in based on the specified email address (or nickname) and password.
| Note: For security reasons, this method should only be sent over SSL. |
Arguments
- string APIKey
- string EmailAddress
- string Password
Result
- struct Login
- struct Session
- string id
- struct User
- integer id
- string NickName
- string DisplayName
- string PasswordHash
- string AccountType
- integer FileSizeLimit
- struct Session
Fault Codes
- 1 - "invalid login"
- 5 - "system error"
- 11 - "ancient version"
- 18 - "invalid API key"
Sample Requests
XML-RPC
<methodCall> <methodName>smugmug.login.withPassword</methodName> <params> <param> <value> <struct> <member> <name>EmailAddress</name> <value> <string>[insert email address]</string> </value> </member> <member> <name>Password</name> <value> <string>[insert password]</string> </value> </member> <member> <name>APIKey</name> <value> <string>[insert api key]</string> </value> </member> </struct> </value> </param> </params> </methodCall>
Sample Responses
REST
<rsp stat="ok"> <method>smugmug.login.withPassword</method> <Login PasswordHash="$1$SzcXhAg5$ryhs7e5YPJjHPN2k4es3Y1" AccountType="Pro" FileSizeLimit="25165824"> <Session id="f920524b60bdb9ec711bcdbb6efd3faa"/> <User id="512" NickName="frednerk" DisplayName="Fred Nerk"/> </Login> </rsp>
JSON
{
"stat":"ok",
"method":"smugmug.login.withPassword",
"Login":{
"Session":{"id":"f920524b60bdb9ec711bcdbb6efd3faa"},
"User":{"id":512, "NickName":"frednerk" "DisplayName":"Fred Nerk",
"PasswordHash":"$1$SzcXhAg5$ryhs7e5YPJjHPN2k4es3Y1",
"AccountType":"Pro",
"FileSizeLimit":"25165824"}
}
}
PHP
a:3:{
s:4:"stat";
s:2:"ok";
s:6:"method";
s:26:"smugmug.login.withPassword";
s:5:"Login";a:5:{
s:7:"Session";a:1:{s:2:"id";s:32:"f920524b60bdb9ec711bcdbb6efd3faa";}
s:4:"User";a:3:{
s:2:"id";i:512;s:8:"NickName";s:8:"frednerk";s:11:"DisplayName";s:9"Fred Nerk";
};
s:12:"PasswordHash";s:34:"$1$SzcXhAg5$ryhs7e5YPJjHPN2k4es3Y1";
s:11:"AccountType";s:3:"Pro";
s:13:"FileSizeLimit";i:25165824;
}
}
XML-RPC
<struct> <member> <name>Session</name> <value> <struct> <member> <name>id</name> <value><string>f920524b60bdb9ec711bcdbb6efd3faa</string></value> </member> </struct> </value> </member> <member> <name>FileSizeLimit</name> <value><int>25165824</int></value> </member> <member> <member> <name>AccountType</name> <value><string>Pro</string></value> </member> <member> <name>PasswordHash</name> <value><string>$1$SzcXhAg5$ryhs7e5YPJjHPN2k4es3Y1</string></value> </member> <member> <name>User</name> <value> <struct> <member> <name>id</name> <value><int>512</int></value> </member> <member> <name>NickName</name> <value><string>frednerk</string></value> </member> <member> <name>DisplayName</name> <value><string>Fred Nerk</string></value> </member> </struct> </value> </member> </struct>
Code Samples
PHP using REST
<?php
$base = "https://api.smugmug/hack/rest/1.2.1";
$url = $base . "?";
$params = array (
"method" => "smugmug.login.withPassword",
"EmailAddress" => "YourSmugMugNickNameOrEmailAddress",
"Password" => "YourSmugMugPassword",
"APIKey" => "YourSmugMugAPIKey"
);
foreach ($params as $key => $value) {
$url .= "$key=" . urlencode($value) . "&";
}
$xml = file_get_contents($url);
?>
PERL using JSON
use LWP;
use JSON;
my $base = "https://api.smugmug/hack/json/1.2.1";
my $url = $base . "?";
my $params = {
"method" => "smugmug.login.withPassword",
"EmailAddress" => "YourSmugMugNickNameOrEmailAddress",
"Password" => "YourSmugMugPassword",
"APIKey" => "YourSmugMugAPIKey"
};
for my $key (keys %params ) {
$url .= "$key=" . ${params}{$key} . "&";
}
my $ua = LWP::UserAgent->new();
my $response = $ua->get($url);
my $json = new JSON(unmapping =>1);
my $hash = $json->jsonToObj($response->content);
The response struct as listed up top is not the same as the response actually uses. Check the samples to confirm the correct order.