X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=doc%2Fapi.md;h=147c8b7513c8c980619b1dd13e3c2491979c90c0;hb=545a7a80e4c56fe58f8c810be7d5711d2fe5272d;hp=fa9df1245eedacf55bec7104ec081fc17ad0438f;hpb=dd14981ec447139e619ae34252f42b287210df51;p=friendica.git diff --git a/doc/api.md b/doc/api.md index fa9df1245e..147c8b7513 100644 --- a/doc/api.md +++ b/doc/api.md @@ -1,427 +1,445 @@ Implemented API calls === -The friendica API aims to be compatible to the [StatusNet API](http://status.net/wiki/Twitter-compatible_API) which aims to be compatible to the [Twitter API 1.0](https://dev.twitter.com/docs/api/1). +The Friendica API aims to be compatible to the [GNU Social API](http://skilledtests.com/wiki/Twitter-compatible_API) and the [Twitter API](https://dev.twitter.com/rest/public). Please refer to the linked documentation for further information. -General ---- +## Implemented API calls -### Unsupported parameters -* cursor: Not implemented in StatusNet -* trim_user: Not implemented in StatusNet -* contributor_details: Not implemented in StatusNet -* place_id: Not implemented in StatusNet -* display_coordinates: Not implemented in StatusNet +### General +#### Unsupported parameters +* cursor: Not implemented in GNU Social +* trim_user: Not implemented in GNU Social +* contributor_details: Not implemented in GNU Social +* place_id: Not implemented in GNU Social +* display_coordinates: Not implemented in GNU Social * include_rts: To-Do -* include_my_retweet: Retweets in friendica are implemented in a different way +* include_my_retweet: Retweets in Friendica are implemented in a different way -### Different behaviour +#### Different behaviour * screen_name: The nick name in friendica is only unique in each network but not for all networks. The users are searched in the following priority: Friendica, StatusNet/GNU Social, Diaspora, pump.io, Twitter. If no contact was found by this way, then the first contact is taken. * include_entities: Default is "false". If set to "true" then the plain text is formatted so that links are having descriptions. -### Return values +#### Return values * cid: Contact id of the user (important for "contact_allow" and "contact_deny") * network: network of the user -account/verify_credentials ---- +### account/rate_limit_status -### Parameters +### account/verify_credentials +#### Parameters * skip_status: Don't show the "status" field. (Default: false) * include_entities: "true" shows entities for pictures and links (Default: false) -statuses/update, statuses/update_with_media ---- +### conversation/show +Unofficial Twitter command. It shows all direct answers (excluding the original post) to a given id. -### Parameters -* title: Title of the status -* status: Status in text format -* htmlstatus: Status in HTML format -* in_reply_to_status_id -* lat: latitude -* long: longitude -* media: image data -* source: Application name -* group_allow -* contact_allow -* group_deny -* contact_deny -* network +#### Parameters +* id: id of the post +* count: Items per page (default: 20) +* page: page number +* since_id: minimal id +* max_id: maximum id * include_entities: "true" shows entities for pictures and links (Default: false) -### Unsupported parameters -* trim_user -* place_id -* display_coordinates - -users/search ---- - -### Parameters -* q: name of the user - -### Unsupported parameters -* page -* count -* include_entities - -users/show ---- +#### Unsupported parameters +* include_rts +* trim_user +* contributor_details -### Parameters -* user_id: id of the user -* screen_name: screen name (for technical reasons, this value is not unique!) +### direct_messages +#### Parameters +* count: Items per page (default: 20) +* page: page number +* since_id: minimal id +* max_id: maximum id +* getText: Defines the format of the status field. Can be "html" or "plain" * include_entities: "true" shows entities for pictures and links (Default: false) -statuses/home_timeline ---- +#### Unsupported parameters +* skip_status -### Parameters +### direct_messages/all +#### Parameters * count: Items per page (default: 20) * page: page number * since_id: minimal id * max_id: maximum id -* exclude_replies: don't show replies (default: false) -* conversation_id: Shows all statuses of a given conversation. -* include_entities: "true" shows entities for pictures and links (Default: false) +* getText: Defines the format of the status field. Can be "html" or "plain" -### Unsupported parameters -* include_rts -* trim_user -* contributor_details +### direct_messages/conversation +Shows all direct messages of a conversation +#### Parameters +* count: Items per page (default: 20) +* page: page number +* since_id: minimal id +* max_id: maximum id +* getText: Defines the format of the status field. Can be "html" or "plain" +* uri: URI of the conversation -statuses/friends_timeline ---- +### direct_messages/new +#### Parameters +* user_id: id of the user +* screen_name: screen name (for technical reasons, this value is not unique!) +* text: The message +* replyto: ID of the replied direct message +* title: Title of the direct message -### Parameters +### direct_messages/sent +#### Parameters * count: Items per page (default: 20) * page: page number * since_id: minimal id * max_id: maximum id -* exclude_replies: don't show replies (default: false) -* conversation_id: Shows all statuses of a given conversation. +* getText: Defines the format of the status field. Can be "html" or "plain" * include_entities: "true" shows entities for pictures and links (Default: false) -### Unsupported parameters -* include_rts -* trim_user -* contributor_details - -statuses/public_timeline ---- - -### Parameters +### favorites +#### Parameters * count: Items per page (default: 20) * page: page number * since_id: minimal id * max_id: maximum id -* exclude_replies: don't show replies (default: false) -* conversation_id: Shows all statuses of a given conversation. * include_entities: "true" shows entities for pictures and links (Default: false) -### Unsupported parameters -* trim_user +#### Unsupported parameters +* user_id +* screen_name -statuses/show ---- +Favorites aren't displayed to other users, so "user_id" and "screen_name". So setting this value will result in an empty array. -### Parameters -* id: message number -* conversation: if set to "1" show all messages of the conversation with the given id +### favorites/create +#### Parameters +* id * include_entities: "true" shows entities for pictures and links (Default: false) -### Unsupported parameters -* include_my_retweet -* trim_user +### favorites/destroy +#### Parameters +* id +* include_entities: "true" shows entities for pictures and links (Default: false) -statuses/retweet ---- +### followers/ids +#### Parameters +* stringify_ids: Should the id numbers be sent as text (true) or number (false)? (default: false) -### Parameters -* id: message number -* include_entities: "true" shows entities for pictures and links (Default: false) +#### Unsupported parameters +* user_id +* screen_name +* cursor -### Unsupported parameters -* trim_user +Friendica doesn't allow showing followers of other users. + +### friendica/photo +#### Parameters +* photo_id: Resource id of a photo. + +Returns data of a picture with the given resource. + +### friendica/photos/list + +Returns a list of all photo resources of the logged in user. + +### friends/ids +#### Parameters +* stringify_ids: Should the id numbers be sent as text (true) or number (false)? (default: false) + +#### Unsupported parameters +* user_id +* screen_name +* cursor + +Friendica doesn't allow showing friends of other users. -statuses/destroy ---- +### help/test -### Parameters +### media/upload +#### Parameters +* media: image data + +### oauth/request_token +#### Parameters +* oauth_callback + +#### Unsupported parameters +* x_auth_access_type + +### oauth/access_token +#### Parameters +* oauth_verifier + +#### Unsupported parameters +* x_auth_password +* x_auth_username +* x_auth_mode + +### statuses/destroy +#### Parameters * id: message number * include_entities: "true" shows entities for pictures and links (Default: false) -### Unsupported parameters +#### Unsupported parameters * trim_user -statuses/mentions ---- +### statuses/followers +* include_entities: "true" shows entities for pictures and links (Default: false) + +### statuses/friends +* include_entities: "true" shows entities for pictures and links (Default: false) -### Parameters +### statuses/friends_timeline +#### Parameters * count: Items per page (default: 20) * page: page number * since_id: minimal id * max_id: maximum id +* exclude_replies: don't show replies (default: false) +* conversation_id: Shows all statuses of a given conversation. * include_entities: "true" shows entities for pictures and links (Default: false) -### Unsupported parameters +#### Unsupported parameters * include_rts * trim_user * contributor_details -statuses/replies ---- - -### Parameters +### statuses/home_timeline +#### Parameters * count: Items per page (default: 20) * page: page number * since_id: minimal id * max_id: maximum id +* exclude_replies: don't show replies (default: false) +* conversation_id: Shows all statuses of a given conversation. * include_entities: "true" shows entities for pictures and links (Default: false) -### Unsupported parameters +#### Unsupported parameters * include_rts * trim_user * contributor_details -statuses/user_timeline ---- - -### Parameters -* user_id: id of the user -* screen_name: screen name (for technical reasons, this value is not unique!) +### statuses/mentions +#### Parameters * count: Items per page (default: 20) * page: page number * since_id: minimal id * max_id: maximum id -* exclude_replies: don't show replies (default: false) -* conversation_id: Shows all statuses of a given conversation. * include_entities: "true" shows entities for pictures and links (Default: false) -### Unsupported parameters +#### Unsupported parameters * include_rts * trim_user * contributor_details -conversation/show ---- - -Unofficial Twitter command. It shows all direct answers (excluding the original post) to a given id. - -### Parameters -* id: id of the post +### statuses/public_timeline +#### Parameters * count: Items per page (default: 20) * page: page number * since_id: minimal id * max_id: maximum id +* exclude_replies: don't show replies (default: false) +* conversation_id: Shows all statuses of a given conversation. * include_entities: "true" shows entities for pictures and links (Default: false) -### Unsupported parameters -* include_rts +#### Unsupported parameters * trim_user -* contributor_details - -favorites ---- -### Parameters +### statuses/replies +#### Parameters * count: Items per page (default: 20) * page: page number * since_id: minimal id * max_id: maximum id * include_entities: "true" shows entities for pictures and links (Default: false) -### Unsupported parameters -* user_id -* screen_name - -Favorites aren't displayed to other users, so "user_id" and "screen_name". So setting this value will result in an empty array. - -account/rate_limit_status ---- - -help/test ---- +#### Unsupported parameters +* include_rts +* trim_user +* contributor_details -statuses/friends ---- +### statuses/retweet +#### Parameters +* id: message number * include_entities: "true" shows entities for pictures and links (Default: false) -### Unsupported parameters -* user_id -* screen_name -* cursor - -Friendica doesn't allow showing friends of other users. - -statuses/followers ---- +#### Unsupported parameters +* trim_user +### statuses/show +#### Parameters +* id: message number +* conversation: if set to "1" show all messages of the conversation with the given id * include_entities: "true" shows entities for pictures and links (Default: false) -### Unsupported parameters -* user_id -* screen_name -* cursor - -Friendica doesn't allow showing followers of other users. - -statusnet/config ---- - -statusnet/version ---- - -friends/ids ---- - -### Parameters -* stringify_ids: Should the id numbers be sent as text (true) or number (false)? (default: false) - -### Unsupported parameters -* user_id -* screen_name -* cursor - -Friendica doesn't allow showing friends of other users. - -followers/ids ---- - -Parameters ---- - -* stringify_ids: Should the id numbers be sent as text (true) or number (false)? (default: false) - -### Unsupported parameters -* user_id -* screen_name -* cursor +#### Unsupported parameters +* include_my_retweet +* trim_user -Friendica doesn't allow showing followers of other users. +### statuses/update, statuses/update_with_media +#### Parameters +* title: Title of the status +* status: Status in text format +* htmlstatus: Status in HTML format +* in_reply_to_status_id +* lat: latitude +* long: longitude +* media: image data +* source: Application name +* group_allow +* contact_allow +* group_deny +* contact_deny +* network +* include_entities: "true" shows entities for pictures and links (Default: false) +* media_ids: (By now only a single value, no array) -direct_messages/new ---- +#### Unsupported parameters +* trim_user +* place_id +* display_coordinates -### Parameters +### statuses/user_timeline +#### Parameters * user_id: id of the user * screen_name: screen name (for technical reasons, this value is not unique!) -* text: The message -* replyto: ID of the replied direct message -* title: Title of the direct message - -direct_messages/conversation ---- - -Shows all direct messages of a conversation -### Parameters * count: Items per page (default: 20) * page: page number * since_id: minimal id * max_id: maximum id -* getText: Defines the format of the status field. Can be "html" or "plain" -* uri: URI of the conversation - -direct_messages/all ---- - -### Parameters -* count: Items per page (default: 20) -* page: page number -* since_id: minimal id -* max_id: maximum id -* getText: Defines the format of the status field. Can be "html" or "plain" - -direct_messages/sent ---- - -### Parameters -* count: Items per page (default: 20) -* page: page number -* since_id: minimal id -* max_id: maximum id -* getText: Defines the format of the status field. Can be "html" or "plain" +* exclude_replies: don't show replies (default: false) +* conversation_id: Shows all statuses of a given conversation. * include_entities: "true" shows entities for pictures and links (Default: false) -direct_messages ---- +#### Unsupported parameters +* include_rts +* trim_user +* contributor_details -### Parameters -* count: Items per page (default: 20) -* page: page number -* since_id: minimal id -* max_id: maximum id -* getText: Defines the format of the status field. Can be "html" or "plain" -* include_entities: "true" shows entities for pictures and links (Default: false) +### statusnet/config -### Unsupported parameters -* skip_status +### statusnet/version -oauth/request_token ---- +#### Unsupported parameters +* user_id +* screen_name +* cursor -### Parameters -* oauth_callback +Friendica doesn't allow showing followers of other users. -### Unsupported parameters -* x_auth_access_type +### users/search +#### Parameters +* q: name of the user -oauth/access_token ---- +#### Unsupported parameters +* page +* count +* include_entities -### Parameters -* oauth_verifier +### users/show +#### Parameters +* user_id: id of the user +* screen_name: screen name (for technical reasons, this value is not unique!) +* include_entities: "true" shows entities for pictures and links (Default: false) -### Unsupported parameters -* x_auth_password -* x_auth_username -* x_auth_mode +#### Unsupported parameters +* user_id +* screen_name +* cursor -Not Implemented API calls -=== +Friendica doesn't allow showing friends of other users. + +## Not Implemented API calls +The following API calls are implemented in GNU Social but not in Friendica: (incomplete) -The following list is extracted from the [API source file](https://github.com/friendica/friendica/blob/master/include/api.php) (at the very bottom): -* favorites/create -* favorites/destroy * statuses/retweets_of_me * friendships/create * friendships/destroy * friendships/exists * friendships/show -* account/update_location * account/update_profile_background_image * account/update_profile_image * blocks/create * blocks/destroy -The following are things from the Twitter API also not implemented in StatusNet: -* statuses/retweeted_to_me -* statuses/retweeted_by_me +The following API calls from the Twitter API aren't implemented neither in Friendica nor in GNU Social: + +* statuses/mentions_timeline +* statuses/retweets/:id +* statuses/oembed +* statuses/retweeters/ids +* statuses/lookup +* direct_messages/show +* search/tweets * direct_messages/destroy -* account/end_session +* friendships/no_retweets/ids +* friendships/incoming +* friendships/outgoing +* friendships/update +* friends/list +* friendships/lookup +* account/settings * account/update_delivery_device -* notifications/follow -* notifications/leave -* blocks/exists -* blocks/blocking -* lists - -Usage Examples -=== - -BASH / cURL ---- - +* account/update_profile +* account/update_profile_background_image +* account/update_profile_image +* blocks/list +* blocks/ids +* users/lookup +* users/show +* users/search +* account/remove_profile_banner +* account/update_profile_banner +* users/profile_banner +* mutes/users/create +* mutes/users/destroy +* mutes/users/ids +* mutes/users/list +* users/suggestions/:slug +* users/suggestions +* users/suggestions/:slug/members +* favorites/list +* lists/list +* lists/statuses +* lists/members/destroy +* lists/memberships +* lists/subscribers +* lists/subscribers/create +* lists/subscribers/show +* lists/subscribers/destroy +* lists/members/create_all +* lists/members/show +* lists/members +* lists/members/create +* lists/destroy +* lists/update +* lists/create +* lists/show +* lists/subscriptions +* lists/members/destroy_all +* lists/ownerships +* saved_searches/list +* saved_searches/show/:id +* saved_searches/create +* saved_searches/destroy/:id +* geo/id/:place_id +* geo/reverse_geocode +* geo/search +* geo/place +* trends/place +* trends/available +* help/configuration +* help/languages +* help/privacy +* help/tos +* trends/closest +* users/report_spam + +## Usage Examples +### BASH / cURL Betamax has documentated some example API usage from a [bash script](https://en.wikipedia.org/wiki/Bash_(Unix_shell) employing [curl](https://en.wikipedia.org/wiki/CURL) (see [his posting](https://betamax65.de/display/betamax65/43539)). /usr/bin/curl -u USER:PASS https://YOUR.FRIENDICA.TLD/api/statuses/update.xml -d source="some source id" -d status="the status you want to post" -Python ---- - -The [RSStoFriedika](https://github.com/pafcu/RSStoFriendika) code can be used as an example of how to use the API with python. -The lines for posting are located at [line 21](https://github.com/pafcu/RSStoFriendika/blob/master/RSStoFriendika.py#L21) and following. +### Python +The [RSStoFriedika](https://github.com/pafcu/RSStoFriendika) code can be used as an example of how to use the API with python. The lines for posting are located at [line 21](https://github.com/pafcu/RSStoFriendika/blob/master/RSStoFriendika.py#L21) and following. def tweet(server, message, group_allow=None): url = server + '/api/statuses/update'