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
openSUSE Build Service is sponsored by