My question is about Facebook permission over Application Shares.
I'm developing a App solution to my Customer, out of Facebook's Domain: Here's how it works:
The user access a Page where he can write a message to create a post with Image features;
He is requested to approve this post on his Facebook's Timeline;
When he finishes, the post can not be instantly posted. It will be saved among other users' messages;
When the time comes, an administrator, through a Control Panel, will check and select the best message to qualify;
Only the best message will be posted on the author's Timeline (User Timeline).
The question is:
I know that Facebook is not allowing Implicit Shares, but I don't know if posting only after an administrator input is considered implicit, because there won't be user approval on that moment. He already did it back there writing the message.
Is that possible, or I will have to make another request through Notification or something?
Thanks to the comments. Here's the answer to my own question:
The Answer is NO. Doing a post without user confirmation, even if he already did it some time ago is considered a Implicit Share, and it is no longer possible. There is another problem with the step I provided. You cannot ask for a user to publish something that won't be made instantly. If you ask to do this, it must be right on time. I think there is an exception for Pages, but that's not the point.
To comply with facebook's policy, the same functionality can be made with these steps:
The user access a Page where he can write a message to create a post with Image features;
At this moment The User is NOT asked to post this on Facebook. He is just asked to create it without mentioning Facebook itself;
When he finishes, the post will be saved among other users' messages;
When the time comes, an administrator, through a Control Panel, will check and select the best message to qualify and notify the selected user to access the link containing the message;
Here, finally, the user can see his message and is asked to post it into his timeline;
The applications must always do exactly what they tell the Users they are going to do, and you cannot ask something or request a permission for some functionality that you won't use at that moment.
Thank you!
Related
I have a task to add links to a web page to enable the user to post a short message to Facebook. There may be multiple messages on the page, each with its own link. The intent is to launch a Facebook share dialog pre-populated with the text of the message which the user can then modify, accept and/or reject.
I'm pretty new to programming anything for Facebook. I'm fairly confused and am not sure what to ask first, so I'll go with a very basic question: what's the simplest way to do this? I gather from Facebook's documentation that I probably have to use the Javascript SDK and/or the Open Graph technology. Is this correct, or is there another option I'm missing? Is there a really clear example of this kind of solution anywhere?
Thanks!
You have to create a facebook app first so you have your app_id and app_secret.
After that you need to request permissions to the user to publish_actions. If the user accepts, you'll receive a token (you need to store it in db). If you need to publish actions in a user page instead of his own page, you also need the manage_pages permission.
You need to read the facebook graph api documentation to understand how all this works.
The access token you receive expires after certain time. So, when you receive it, you can ask for a long lived token. The page tokens doesn't expire.
Facebook evaluates your app before approving it to be in production. They ask a couple of questions about how you'll use the user's token and data. You might have to put pictures of the flow too.
As far as I know, Facebook won't allow you to send pre populated messages to the user's wall. They user has to write it.
Hope it helped a bit!
Im toying around with integrating facbook into a website. Basically this website will generate acheivements for each user after X amount time (starting from a day up to a year).
I want to post these milestones to facebook automatically (with users prior permission). Does facebook allow this?
This article seems pretty darn explicit that its not.
But i have seen lots of posts on SO that are scheduling posts while trying to figure this out. Perhaps i have terminology's mixed up or something. Could someone explain this for me please.
If its not possible, does this mean that the only time an app can post to a users facebook wall is when the user explicitly clicks something to the effect of "post to my wall". Meaning they would need to login and manually approve every milestone?
Thanks
No, it's not possible to post something on behalf of a user automatically. According to the facebook's policy, even if a user grants you a publishing permission, actions you take on the user's behalf must be expected by the user, i.e. user must be aware of the actions you are taking on his behalf. As the article says, this can be done, for example, by prompting user with a dialog box with a link to Share a photo to their timeline each time your app would like to share to the user’s Stream.
Facebook however permits scheduled Page posts, but I guess this is not what you want. You can read more about it here.
We have an application that lets users challenge their friends in various challenges. Right now we issue the challenge by posting a message to their friends wall. This functionality will be removed in february so we need to find another way of issuing the challenge. What are the alternatives available?
We want the friend to get notified that the challenge has taken place and that some kind of story is generated on some wall.
We have looked at open graph actions and the mention tagging there must be done by the user herself so we can't use that to mention the selected friend. And we cant use action tagging since this is not an event that has or is happening.
It might be possible to use an open graph action referencing the built in "Profile (External)" object, but that seems to be rather messy - we just want to reference the facebook user. And we don't know if the friend would get notified of this - probably not.
The story could be published to the users own wall, but we really want the friend to be mentioned and notified.
It seems to be a rather standard use case for applications - does facebook provide this functionality anymore?
Edit: I'm thinking that maybe invoking the javascript feed dialog with a from and to setting might work. Then the user can also write a personal message for the challenge, and it should show up at both walls?
The best way to do this is by using a request: https://developers.facebook.com/docs/requests/
Of course it will not be public then, but after all it´s a direct action between the user and his friend and other users might see this as spam.
The other way (and the second best, i guess) is to use mention tagging:
https://developers.facebook.com/docs/technical-guides/opengraph/mention-tagging/
You could use Open Graph to post a dynamic link, if the mentioned user clicks on it > challenge accepted. If any other user clicks on it, he will just get redirected to the main app page.
...another idea, which is probably the very best:
use the request dialog for the challenge
after sending the request, let the user (if he wants to) post a message about it on his wall (feed dialog)
I have a yard sale website that I'm about to revamp, and rather than using my own user database, I'd like to use Facebook connect to authenticate people into my site, and the only reason I need them to do that in the first place is so after a yard sale is posted on my site, I'd like to be able to post on their wall that they're having a yard sale.
So, my two questions are:
Is it possible to use Facebook Connect without my own user database? I understand that I'll have to store the facebook ID, etc.. within a database table, and that's no problem, I just don't want to give the confusing option of "click here to create an account" + "click here to login with your user name and password" + "Or click here to login with facebook". I'd just like the last option.
Second question is, is there any way to force the user to allow me to post on their wall? I understand that they can uncheck that option when signing in with facebook, but can I verify that permission and ask them to re-login with that option checked? I'm not trying to be a prick, I'm offering a fantastic service that is completely free and in exchange I just want the ability to post their sale on their own wall so I can spread the word. I'd prefer for this to not be optional.
To answer your first question, yes. You don't need your own user database, however you will need to save your users auth key and id to be able to post as them - whenever you want. If you dont need to be able to post anytime (like when the user is not online) but only on user actions on your webpage (which is probably most common) there is alternatives like just saving the data in a session. So depending on what your needs are, you don't necessarily need a database at all.
Second question, you can always check if a user has granted a permission using the API. So what you can do is have a page that says that he has to approve to proceed to your page and a link to the auth dialog. Although, I don't recommend it, I doubt It's gonna do you any good and It's possible that Facebook even disapproves of this. The possibility to remove extended permissions is probably there for a reason.
More about checking granted permissions here using the REST API:
http://developers.facebook.com/docs/reference/rest/users.hasAppPermission/
According to the Facebook Platform Policies:
You must not pre-fill the user_message
parameter or content sent via an
extended permission (such as a status
update or note), unless the user
generated the content earlier in the
workflow.
Does that mean that I can't publish stories to the stream automatically, even if the user agreed to?
I've seen apps (such as PlayStation Network, Foto Diaria) that publish stories automatically.
PlayStation Network publishes stories about actions you did in PS3 games and Foto Diaria publishes a picture from your wall every day. In both cases the attachment is created by the application, and the user message is empty. Could that mean that publishing stories with an empty user message (empty, not absent) is not considered pre-filling?
EDIT: I need to know what is allowed or not by the Facebook Platform Policies, not how to post stories.
If you ask the user for the publish_stream extended permission then you'll be able to post automatically whilst the user is interacting with the application. You can pre-fill the user message only if it's something that the user has entered earlier in the process e.g. if you've asked them to comment on a piece of content and then publish a story about the comment. If in doubt, leave it blank.
If you want to publish automatically even when the user isn't online then you'll also need them to grant the application the offline_access extended permission. In this case you'll also need to store the session key that Facebook gives you for that user.
https://developers.facebook.com/docs/guides/policy/examples_and_explanations/stream_stories/
Check this out. The Platform policies section of the FB Dev site has some additional documents to allow you gain a better understanding of the guidelines for sharing.
Please also read the section about User Feedback.
https://developers.facebook.com/docs/guides/policy/examples_and_explanations/user_feedback/
Hope this helps.
We can ask user to grain of offline_access permission, which is access to user profile at anytime, even if user is not online. But this permission will no longer available.
I agree that this permission is so harmful to user.
But it still useful if owner app want to post to their own account during user use their app. If you want to post to your self account, you can manually grain offline_access to your app, and select access_token and keep it in your own app, and use it when you need to post your account. It make sense that Facebook should allow developer to do this task.
it is simply forbidden but, there is a catch about it, if is text prepared by user previously, you can post that text later and I think you are able to add your own text to that. But not so sure..
I'm saying this based on McDonald's Canada's yourquestions app, you can ask questions to them, whenever its answered they posting to your wall.
But to clarify that, as a PMD I'll ask to FB personally and let you know what is the answer is.