summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMickaël Thomas <mickael9@gmail.com>2017-06-25 04:07:39 -0300
committerMickaël Thomas <mickael9@gmail.com>2017-06-25 04:07:39 -0300
commitf6c0bfc124a603ed5c15d86e1dafafc3b5151311 (patch)
treeb3aae6fc216085020cd7b368fd5fab0668287e82
parentf7b1dcd720ded17ea70068260658d41962f21d80 (diff)
downloadpidgin-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.c6
-rw-r--r--libpurple/protocols/facebook/api.h7
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.