As a developer you can create applications and add them to CityLight, taking advantage of the existing user base. You host the application, which means that you are in full control of your server specifications.
Setting up an APP
To interact with CityLight your application can issue calls to our API and request or post information.When you add an application to our site we will give you an APP ID.
Requesting a Token
Whenever you plan on using our API you must first request a token. In order to request a token you need a unique key that we send to you when a user visits your APP from an iframe on our site. We pass this along as $_GET['key'].
This is an example of how you can request a token:
http://citylightworldwide.net/token.php?key=$_GET['key']
If successful, you will get a JSON response like:
Object
(
[token] => LS0tLS1CRUdJTiBQVUJMSUMgS0VZLS0tLS0KTUc4d0RRWUpLb1pJaHZjTkFRRUJCUUFEWGdBd1d3SlVBdHFZdmVWOXFEdDd6NFhXTXYzS3VZM2JyWXpUKzR0VgpBbERrN1dQWjhqRVpoVzBNWjE1Z3lHdGNlNm5ueFRNenp4SXpHM29BRVIzc0JVRCtYdStHb21JeVV4UE1RN1NtCkVPdFg0ZTNwekp6R081cUxBZ01CQUFFPQotLS0tLUVORCBQVUJMSUMgS0VZLS0tLS0K
)
Sending a Request
Now that you have a valid token you can make requests to our server. With each request you must pass the token we created for you.
An example call to our API server would look like:
http://citylightworldwide.net/api.php?token=#{TOKEN}&method=#{METHOD_NAME}
Understanding an API Response
For methods that could return more than one item the response will contain an indicator of the total items available as well as how many pages there are. We return by default 10 items at most and in order to get the next 10 items you would have to pass the param "page=2".
To the left you will find a list of the modules that implement API methods. Click on the module and you will see a list of the methods that your application can use. For shortness and formatting purposes we do not include the full request in there but only the most relevant parts.
advancedphoto
addPhoto
POST /api.php?method=advancedphoto.addPhoto&photo=#{@FILE_PATH;TYPE=MIME_TYPE}&photo_name=#{BASE_FILE_NAME}
Uploads a photo on behalf of the user.
Response
Object
(
[api] => Object
(
[total] => 0
[pages] => 0
[current_page] => 0
)
[output] => Object
(
[original] => http://citylightworldwide.net/file/pic/photo/2011/08/39740c5e356fdd6f66cfc973d4aebf6d.jpg
[75px] => http://citylightworldwide.net/file/pic/photo/2011/08/39740c5e356fdd6f66cfc973d4aebf6d_75.jpg
[100px] => http://citylightworldwide.net/file/pic/photo/2011/08/39740c5e356fdd6f66cfc973d4aebf6d_100.jpg
[150px] => http://citylightworldwide.net/file/pic/photo/2011/08/39740c5e356fdd6f66cfc973d4aebf6d_150.jpg
[240px] => http://citylightworldwide.net/file/pic/photo/2011/08/39740c5e356fdd6f66cfc973d4aebf6d_240.jpg
[500px] => http://citylightworldwide.net/file/pic/photo/2011/08/39740c5e356fdd6f66cfc973d4aebf6d_500.jpg
[1024px] => http://citylightworldwide.net/file/pic/photo/2011/08/39740c5e356fdd6f66cfc973d4aebf6d_1024.jpg
)
)
getPhotos
GET /api.php?method=advancedphoto.getPhotos&user_id=#{USER_ID}
Get all the photos for a user. If you do not pass the #{USER_ID} we will return information about the user that is currently logged in.
Response
Object
(
[api] => Object
(
[total] => 1
[pages] => 0
[current_page] => 0
)
[output] => Array
(
[0] => Object
(
[photo_100px] => http://citylightworldwide.net/file/pic/photo/c81e728d9d4c2f636f067f89cc14862c_100.jpg
[photo_240px] => http://citylightworldwide.net/file/pic/photo/c81e728d9d4c2f636f067f89cc14862c_240.jpg
[photo_original] => http://citylightworldwide.net/file/pic/photo/c81e728d9d4c2f636f067f89cc14862c.jpg
)
)
)
friend
getFriends
GET /api.php?method=friend.getFriends&user_id=#{USER_ID}
Gets a full list of friends for a specific user. If you do not pass the #{USER_ID} we will return information about the user that is currently logged in.
Response
Object
(
[api] => Object
(
[total] => 1
[pages] => 0
[current_page] => 0
)
[output] => Array
(
[0] => Object
(
[user_id] => 7
[user_name] => jane-doe
[full_name] => Jane Doe
[joined] => 1314110027
[country_iso] => US
[gender] => Female
[photo_50px] => http://citylightworldwide.net/file/pic/user/7_50.jpg
[photo_50px_square] => http://citylightworldwide.net/file/pic/user/7_50_square.jpg
[photo_120px] => http://citylightworldwide.net/file/pic/user/7_120.jpg
[photo_original] => http://citylightworldwide.net/file/pic/user/7.jpg
[profile_url] => http://citylightworldwide.net/index.php?do=/jane-doe/
)
)
)
isFriend
GET /api.php?method=friend.isFriend&user_id=#{USER_ID}&friend_user_id=#{FRIEND_USER_ID}
Checks if 2 users are friends or not. If you do not pass the #{USER_ID} we will return information about the user that is currently logged in.
Response
Object
(
[api] => Object
(
[total] => 0
[pages] => 0
[current_page] => 0
)
[output] => Object
(
[is_friend] => 1
)
)
mail
getNewCount
GET /api.php?method=mail.getNewCount&user_id=#{USER_ID}
Get the total number of unseen messages. If you do not pass the #{USER_ID} we will return information about the user that is currently logged in.
Response
Object
(
[api] => Object
(
[total] => 0
[pages] => 0
[current_page] => 0
)
[output] => 1
)
notification
getNewCount
GET /api.php?method=notification.getNewCount&user_id=#{USER_ID}
Get the total number of unseen notifications. If you do not pass the #{USER_ID} we will return information about the user that is currently logged in.
Response
Object
(
[api] => Object
(
[total] => 5
[pages] => 0
[current_page] => 0
)
[output] => 5
)
get
GET /api.php?method=notification.get&user_id=#{USER_ID}
Get all of the users notifications. If you do not pass the #{USER_ID} we will return information about the user that is currently logged in.
Response
Object
(
[api] => Object
(
[total] => 0
[pages] => 0
[current_page] => 0
)
[output] => Array
(
[0] => Object
(
[notification_id] => 3
[link] => http://citylightworldwide.net/john-doe/comment-id_1/
[message] => Jane Doe commented on your wall
[icon] => http://citylightworldwide.net/module/blog/static/image/default/default/activity.png
)
)
)
photo
addPhoto
POST /api.php?method=photo.addPhoto&photo=#{@FILE_PATH;TYPE=MIME_TYPE}&photo_name=#{BASE_FILE_NAME}
Uploads a photo on behalf of the user.
Response
Object
(
[api] => Object
(
[total] => 0
[pages] => 0
[current_page] => 0
)
[output] => Object
(
[original] => http://citylightworldwide.net/file/pic/photo/2011/08/39740c5e356fdd6f66cfc973d4aebf6d.jpg
[75px] => http://citylightworldwide.net/file/pic/photo/2011/08/39740c5e356fdd6f66cfc973d4aebf6d_75.jpg
[100px] => http://citylightworldwide.net/file/pic/photo/2011/08/39740c5e356fdd6f66cfc973d4aebf6d_100.jpg
[150px] => http://citylightworldwide.net/file/pic/photo/2011/08/39740c5e356fdd6f66cfc973d4aebf6d_150.jpg
[240px] => http://citylightworldwide.net/file/pic/photo/2011/08/39740c5e356fdd6f66cfc973d4aebf6d_240.jpg
[500px] => http://citylightworldwide.net/file/pic/photo/2011/08/39740c5e356fdd6f66cfc973d4aebf6d_500.jpg
[1024px] => http://citylightworldwide.net/file/pic/photo/2011/08/39740c5e356fdd6f66cfc973d4aebf6d_1024.jpg
)
)
getPhotos
GET /api.php?method=photo.getPhotos&user_id=#{USER_ID}
Get all the photos for a user. If you do not pass the #{USER_ID} we will return information about the user that is currently logged in.
Response
Object
(
[api] => Object
(
[total] => 1
[pages] => 0
[current_page] => 0
)
[output] => Array
(
[0] => Object
(
[photo_100px] => http://citylightworldwide.net/file/pic/photo/c81e728d9d4c2f636f067f89cc14862c_100.jpg
[photo_240px] => http://citylightworldwide.net/file/pic/photo/c81e728d9d4c2f636f067f89cc14862c_240.jpg
[photo_original] => http://citylightworldwide.net/file/pic/photo/c81e728d9d4c2f636f067f89cc14862c.jpg
)
)
)
user
getUser
GET /api.php?method=user.getUser&user_id=#{USER_ID}
Get information about a user based on the user ID# you pass. If you do not pass the #{USER_ID} we will return information about the user that is currently logged in.
Response
Object
(
[api] => Object
(
[total] => 0
[pages] => 0
[current_page] => 0
)
[output] => Object
(
[user_id] => 1
[user_name] => john-doe
[joined] => 1314109907
[gender] => Male
[country_iso] => US
[full_name] => John Doe
[email] => john.doe@site.com
[photo_50px] => http://citylightworldwide.net/file/pic/user/2011/08/9d673759d1cf55c9cd0b0805dc32e68e_50.jpg
[photo_50px_square] => http://citylightworldwide.net/file/pic/user/2011/08/9d673759d1cf55c9cd0b0805dc32e68e_50_square.jpg
[photo_120px] => http://citylightworldwide.net/file/pic/user/2011/08/9d673759d1cf55c9cd0b0805dc32e68e_120.jpg
[photo_original] => http://citylightworldwide.net/file/pic/user/2011/08/9d673759d1cf55c9cd0b0805dc32e68e.jpg
[profile_url] => http://citylightworldwide.net/index.php?do=/john-doe/
)
)