diff options
author | Mickaël Thomas <mickael9@gmail.com> | 2017-06-25 04:07:39 -0300 |
---|---|---|
committer | Mickaël Thomas <mickael9@gmail.com> | 2017-06-25 04:07:39 -0300 |
commit | f6c0bfc124a603ed5c15d86e1dafafc3b5151311 (patch) | |
tree | b3aae6fc216085020cd7b368fd5fab0668287e82 | |
parent | f7b1dcd720ded17ea70068260658d41962f21d80 (diff) | |
download | pidgin-f6c0bfc124a603ed5c15d86e1dafafc3b5151311.tar.gz |
facebook: Extract target url from fbrpc:// URLs
Those URLs seem to be generated when the Android share feature is used.
(Adapted for purple-facebook by dx, minor naming differences)
-rw-r--r-- | libpurple/protocols/facebook/api.c | 6 | ||||
-rw-r--r-- | libpurple/protocols/facebook/api.h | 7 |
2 files changed, 12 insertions, 1 deletions
diff --git a/libpurple/protocols/facebook/api.c b/libpurple/protocols/facebook/api.c index 517a14aa4d..2cdb5f3cd7 100644 --- a/libpurple/protocols/facebook/api.c +++ b/libpurple/protocols/facebook/api.c @@ -1400,7 +1400,11 @@ fb_api_xma_parse(FbApi *api, const gchar *body, JsonNode *root, GError **error) if (purple_strequal(str, "ExternalUrl")) { params = fb_http_params_new_parse(url, TRUE); - text = fb_http_params_dup_str(params, "u", NULL); + if (g_str_has_prefix(url, FB_API_FBRPC_PREFIX)) { + text = fb_http_params_dup_str(params, "target_url", NULL); + } else { + text = fb_http_params_dup_str(params, "u", NULL); + } fb_http_params_free(params); } else { text = g_strdup(url); diff --git a/libpurple/protocols/facebook/api.h b/libpurple/protocols/facebook/api.h index b191aa24de..3229b16790 100644 --- a/libpurple/protocols/facebook/api.h +++ b/libpurple/protocols/facebook/api.h @@ -77,6 +77,13 @@ #define FB_API_WHOST "https://www.facebook.com" /** + * FB_API_FBRPC_PREFIX + * + * The fbrpc URL prefix used in links shared from the mobile app. + */ +#define FB_API_FBRPC_PREFIX "fbrpc://facebook/nativethirdparty" + +/** * FB_API_KEY: * * The Facebook API key. |