File librest-fbconnect-url.patch of Package librest
diff --git a/rest-extras/facebook-proxy.c b/rest-extras/facebook-proxy.c
index 2ca5490..515d09d 100644
--- a/rest-extras/facebook-proxy.c
+++ b/rest-extras/facebook-proxy.c
@@ -328,6 +328,38 @@ facebook_proxy_build_login_url (FacebookProxy *proxy, const char *token)
}
char *
+facebook_proxy_build_fbconnect_login_url (FacebookProxy *proxy, const char *perms)
+{
+ SoupURI *uri;
+ GHashTable *params;
+ char *s;
+
+ g_return_val_if_fail (FACEBOOK_IS_PROXY (proxy), NULL);
+
+ uri = soup_uri_new ("http://facebook.com/login.php");
+ params = g_hash_table_new (g_str_hash, g_str_equal);
+
+ g_hash_table_insert (params, "api_key", proxy->priv->api_key);
+ g_hash_table_insert (params, "v", "1.0");
+ g_hash_table_insert (params, "connect_display", "popup");
+ g_hash_table_insert (params, "fbconnect", "true");
+ g_hash_table_insert (params, "return_session", "true");
+ g_hash_table_insert (params, "session_key_only", "true");
+ if (perms)
+ g_hash_table_insert (params, "req_perms", perms);
+
+ soup_uri_set_query_from_form (uri, params);
+
+ s = soup_uri_to_string (uri, FALSE);
+
+ g_hash_table_unref (params);
+ soup_uri_free (uri);
+ return s;
+}
+
+
+
+char *
facebook_proxy_build_permission_url (FacebookProxy *proxy, const char *perms)
{
SoupURI *uri;
diff --git a/rest-extras/facebook-proxy.h b/rest-extras/facebook-proxy.h
index cdee905..6f4360f 100644
--- a/rest-extras/facebook-proxy.h
+++ b/rest-extras/facebook-proxy.h
@@ -86,6 +86,8 @@ char * facebook_proxy_sign (FacebookProxy *proxy, GHashTable *params);
char * facebook_proxy_build_login_url (FacebookProxy *proxy, const char *frob);
+char * facebook_proxy_build_fbconnect_login_url (FacebookProxy *proxy, const char *perms);
+
char * facebook_proxy_build_permission_url (FacebookProxy *proxy, const char *perms);
G_END_DECLS