# Message Boards

GROUPS:
 I am trying to use SocialMediaData through JLink. Functions that don't require authorization such as SocialMediaData["Facebook","Properties"] work fine, but when I try to do something like SocialMediaData["Facebook", "Friends"] I get a packet back saying "A front end is not available; certain operations require a front end." Presumably, the front end is required to ask the user for the facebook access key. Is there a way to give the kernel the access key programmatically through JLink, or alternatively, to write my own front end that could imitate Mathematica's front end for the purpose of returning the access key to the kernel?
1 year ago
7 Replies
 Try using DeveloperUseFrontEnd. Is there something about your machine which is preventing you from using the front end? or where you looking to script this?DeveloperUseFrontEnd[SocialMediaData["Facebook","Friends"]]
1 year ago
 I'm accessing JLink from within a web server, so it can't open a front end that the client can see. P.S. the original post says "updating name" but it was me. Not sure why except maybe I posted too soon after creating the account.
1 year ago
 It appears that I can invoke "MathLinkSetFrontEnd[\$ParentLink]" through a MathLink connection and then it thinks I'm the front end. At this point a lot of reverse engineering would probably have to happen to actually imitate a front end. We will see how far I get.
 John Borland 1 Vote Indeed, I came to a dead end as far as imitating the front end. I got farther than I thought I would, though. I like that MathLink is transparent enough to at least give a glimpse of what is going on.Another approach I thought to try was to override a function within Mathematica. For example, I tried this, using an access token than I had retrieved with my own code: HTTPClientOAuthAuthentication[consumerKey_,consumerSecret_,     authorizeEndpoint_,accessEndpoint_,redirectURI_,     oauthVersion_,accessTokenExtractor_]=   HTTPClientOAuthToken[HTTPClientOAuthPrivateOAuth20Parameters["graph.facebook.com",       None,Automatic,"verifier",Automatic,Automatic,"(my consumer key here)",       "(my consumer secret here)","https://www.facebook.com/dialog/oauth","RemoveWhitespace",       "https://graph.facebook.com/oauth/access_token","GET",       "https://www.facebook.com/connect/login_success.html","Text/2.0","None"],       HTTPClientOAuthPrivateToken20["(my valid access token here)"]]But then when I try this:token = HTTPClient`OAuthAuthentication["ConsumerKey" -> "(my consumer key)","ConsumerSecret" -> "(my consumer secret)","AuthorizeEndpoint" -> "https://www.facebook.com/dialog/oauth","AccessEndpoint" -> "https://graph.facebook.com/oauth/access_token","RedirectURI" -> "https://www.facebook.com/connect/login_success.html","OAuthVersion" -> "2.0","AccessTokenExtractor" -> "Text/2.0"]The regular oauth dialog pops up, as if the function had not been overridden. Have I done this incorrectly? Or is this function somehow locked? I tried using "unprotect" but that had no effect.Also, this dialog looks different than the one that pops up when I use SocialMediaData, so I am not sure if SocialMediaData even uses this function. So, perhaps there is too much reverse engineering required altogether in this endeavor. But I thought I would give it a shot.