I was just researching the facebook Messenger Bot and it seems a quite vital feature is not supported by the messenger. Actually I found quite some tutorials how to read the location out of a users post when he sends his location:
Facebook Messenger Chatbot how do I collect the users geo location that they send?
However, is it not possible to get the location from the user without any additional interaction with the user? Like Apps (i.e. Tinder) know exactly where you are even when not using the service.
Is the messenger not streaming the users location? I was just like thinking: If a user is coming closer to an airport, ask him to do this and that. How I see it I would constantly need to ask the user where he currently is and to send me a location of his position.
Or is there anything the user might enable to support the function?
Thanks for your help!
The user's location is not automatically shared with the Bot. As you noted, the user can manually share their location.
Some information can be obtained from the User Profile but not an exact location.
I have implemented the locale feature in my Bot. You can see the source code here, look for the callGetLocalApi function in app.js
You can see more details about implementation in my article Facebook Bots for Fun and Profit.
My latest project has (had) a requirement for the user to invite their friends to their online service. I discovered that, apparently, as of April 2015 with the new v2.0+ Facebook Graph API, you cannot actually get a list of friends for the user, unless those friends are already subscribed members of your app.
The scenario:
My app is a web service that lets the user collaborate on research work in a private group online. The user needs to
look up their list of friends,
set permissions their friend will have in the group, and
send them an invitation both join the service, and the specific group. (using a unique, one-time use link tied to each recipient)
The user would (ideally) receive an invitation with a specific link for them to not just become a subscriber of said online app, but specifically to join the group they were invited to (i.e. not just a generic "hey, check out this app" type of invitation).
The expectation:
The user doesn't care whether their friend is already a member of "MyApp.com". They expect to simply look up their friends just like they do today from their phone when they connect it to Facebook (makes all contacts available, regardless of whether those friends connected their Facebook to their phone, respectively). Likewise, compare inviting members to your Google docs, for example: look up your contact, set permission, send invite - so easy. Users demand this UX simplicity today and do not distinguish or care whether they are dealing with email, Facebook, Twitter contacts, whatever.
The problem:
The entire point of a social network is to be, well, social. If the Graph API only lets my app access friends that are ALREADY users of my app, it completely defeats the entire purpose - it cuts my user off at the knees, kills UX, no more ability to actually contact their own friends. My understanding is Facebook made this change to prevent developers from spamming users, and I get that, I completely support that. HOWEVER, my company and my app are not the ones that are trying to invite friends for it's own purposes, it is the USER and THEIR OWN friends that THEY have the right to access and converse with for their purposes (or so you'd think). Beyond just friends list, even if I had that, I think there are additional hurdles and limitations with posting messages to friends, even private (not wall) messages, which again would be anti-social.
The Question:
Am I understanding Facebook limitations properly, and if so, what is the work-around? I'd be ok with such an API being locked down until you pass a review that proves you aren't spamming users, but I did not see such an option.
Facebook supposedly prioritizes users over developers, and these changes were made because if the user is not comfortable with privacy (don't spam my friends), then they wont be users any longer, and that obviously affects developers and Facebook. OK, but did they not realize that by locking it down this extreme just killed UX for the user in legitimate scenarios? And to my original point, not just a little, but paramount - the result quite literally is that on April 30, 2015, Facebook became anti-social. Surely this is not inline with their mission. Surely there is a better approach.
If your app is not a game (which I assume), the only viable option would be the Message Dialog as desribed at
https://developers.facebook.com/docs/apps/faq#friend_invite
If your app is not a game and has a mobile or web presence:
You can also use the Message Dialog on iOS and Android, or the Send Dialog on Web. These products let a person send a message directly to their friends containing a link to your app. This type of message is a great channel for communicating with a smaller number of people in a direct way. The Message Dialog and the Send Dialog both include a typeahead which lets the person easily select a number of friends to receive the invite.
You might also find App Invites useful but I beleive it's only for iOS and Android apps and might not exactly fit your use case:
https://developers.facebook.com/docs/app-invites
App Invites are a content-rich, personal way for people to invite
their Facebook friends to a mobile app.
I have many Facebook App users but not so many on my Facebook Page. How can I contact my app users?
I don't think that there's a "best way" for this, it depends on what you're trying to achieve.
Check out the Social Channels guide which lists the different ways that facebook enables you to contact your users.
Also, check the Requests guide for more info about the requests (which are mentioned in the social channels).
Other than those channels which you need to use facebook with, you can ask for the "email" permissions from your users, persist that and then you have a way to contact your users without going through facebook.
I am new to Facebook API, gone through the diff blogs and Facebook developer and implemented Facebook comments plugin in my site.
I have a question that, do we need to add any thing specific to the country to show the content in their language or Facebook will take care of it?
Because my site is available in different countries like Brazil, Spain, and etc..
Thanks,
Ranjith
As far as I know, the different Facebook plugins use the local of the logged on user. You don't need to handle this yourself.
I'm trying to access Facebook data using the Graph API from an external commercial application. I've created a login for my company and gather that I need to register a Facebook App in order to use the Graph API.
However, I am confused about the Facebook requirement to associate a Personal Profile (a real person) with the Facebook App. Why must a person become connected to my organization's application?
What if I leave the organization? Will the company I worked for need to pick another employee in order to access the Graph API?
Surely I am missing something.
Your question here seems to be about the Facebook API in general and registering an app for it, rather than the Graph API per se. The answer to the general question is that, as with the Twitter API and certain Google APIs, the personal account is used as part of the process of validating that the app is tied to a real person. Luckily, there's a good solution in place for handling when app developers no longer work for a company: another app developer can remove them from the app. You can list someone else on your team as a developer of the app and they will have the same rights to edit it as you do.