I am wondering if you have a users permission to publish_stream and you want to publish_action from now on does publish_stream cover both or do we need to re-request the users permission?
If so whats the easiest way of detecting wether they have this permission granted etc.
User journey suggestions welcome.
The login system I have in place is users can use with facebook or their account credentials.
But some users sign up without facebook and then connect later. I don't create the session every time they login as I only need the publish_stream permission which works without needing a live user session with facebook to post when the user does specific actions. There is one column in the table which specifies wether the user is connected or not.
Suggestions welcome.
Thanks!
-Stefan
As of now, publish_stream includes publish_actions permissions.
see https://developers.facebook.com/docs/publishing/#publish_stream
The publish_stream permission is a superset of publish_actions allowing everything that publish_actions allows plus more.
publish_stream and publish_actions are two separate permissions. publish_stream does not include publish_actions.
To publish actions to the open graph, you will need to get this new permission for new users and for existing users.
You can check the permissions a user has granted your app by GETing /me/permissions from the Graph API.
In the latest version of the permissions dialog, users will have the option to NOT grant publish_stream - its always an optional permission. If the app requests publish_actions, this permission is considered required.
Once Timeline has launched beyond Developer Beta, you should not need to ask for publish_stream. If you want to publish a feed story, use the Feed Dialog.
Publish_stream is Deprecated Permissions from v2.2, that's why u can not use, just only publish_action u can still use,
https://developers.facebook.com/docs/facebook-login/permissions
regards
djavalatte.com
You must request publish_stream as a new permission because the prompt is much different. It is more around "Add to timeline" and a straight up permission.
To know if you have the permission, you can do many things. The easiest is to try and publish and see if it succeeds. but that will skew your metrics in insights. Better is to use the access token info endpoint and check the scopes you have there.
I have successfully published actions to the timeline with only the publish_stream permission. I cannot say if this is will be the case when it is fully launched or if it's only working because of the developer's beta. We can know for sure once we're 48 hours away from the official launch by checking out the beta tier. http://developers.facebook.com/support/beta-tier/
Related
I am making a server-to-server Facebook 'app' so that some of the news articles we post to our own website can be posted on our own Facebook page too. I have read 14 squintillion pages of documentation, but cannot find how to get the publish_pages permission for myself or the app.
I have coaxed the app through the review process, and got the manage_pages permission allowed. I thought I had to submit all over again, to get publish_pages too, but the documentation says no. Apparently anyone appearing in the Roles for the app can grant the necessary permissions.
I have set myself up as admin for the app, yet when trying to get a token using the Facebook developer tools, I am never shown publish_pages. So even if I create a non-expiring token (my end goal) it is rejected with a message about the lack of publish_pages.
Shouldn't I be seeing more permissions listed here?
I'm sure I've read all relevant parts of the official documentation, plus StackOverflow answers and several unofficial walk-throughs, but I cannot work out what I am missing...
I thought I had to submit all over again, to get publish_pages too,
You do.
but the documentation says no. Apparently anyone appearing in the Roles for the app can grant the necessary permissions.
That is for apps in dev mode. Any of those users can grant the permission to your app, while it is in dev mode. But whatever you publish through your app, will only be visible to this group of users only, and not to the general public.
For the content to be visible to everyone, your app needs to be in live mode.
Before you can ask people - even those with a role in the app - for publish_pages when your app is in live mode, you need to submit that permission for review.
I am using the Graph API to automatically post to a Page. To get a Page Access Token, I have first logged in to my app using the Graph API Explorer's login with the permissions manage_pages, publish_pages and pages_show_list. I then used the access token tool to extend it, then used that to call me/accounts in the Explorer to obtain a Page Access token with no expiry time.
When I first logged in to my app, it was in development mode. I looked at the access token in the Access Token Debugger and saw it had the manage_pages and publish_pages permissions. However, when I make the app public, these permissions disappear from the scope of the access token, even though the user it refers to is an Admin of the app. When I try to make an API call in public mode, I get the following error:
(#200) This endpoint is deprecated since the required permissions manage_pages,publish_pages are deprecated
This really confuses me, as I believe those permissions have not been deprecated.
Does anyone know why the perms are disappearing/becoming "deprecated" when I switch the app to public mode?
I had a similar problem.
After contacting Facebook, it turns out this is an app verification issue, and the publish_pages permission is available for private test apps, and properly approved public apps.
Sadly manage_pages and publish_pages permissions are deprecated. From their documentation -
As of April 24,2018, the pubish_actions permission has been removed. Please see the Breaking Changes Changelog for more details. To provide a way for your app users to share content to Facebook, we encourage you to use our Sharing products instead.
You can check out this link that mentions the above details.
I'm create and facebook app that must require publish_stream to publish some information on user's wall. But when user interact with auth dialog they have an option skipping publish on your wall with your behave. So I have to ask if Django-Social-Auth support to check for permission I want, If user reject it, reopen auth dialog so user can grant it.
I've already put publish_stream in facebook extend permissions settings.
Facebook official docs mention that the publish_actions permissions is needed to publish on your FB stream open graph features (actions + objects).
Well, I'm getting a problem to make it work. On the docs it is mentioned that these features are rolling out slowly to all users and will be available soon, but for now, they should be available for the developer and the test users (at least until my actions/objects are approved). Well, this doesn't work, I get an OAuthException ("(#200) Requires extended permission: publish_actions or App must be on whitelist").
So to make it work, I must first go to the Graph API explorer, grant myself manually a permission (publish_actions) to get the token and only then it works(maybe it is buggy?).
The other option is to categorize my app as "game" and then it behaves as expected. They also say we should enable the Enhanced Auth Dialog, so I did, but that didn't help.
Bump
Edit
This was actually in main docs (https://developers.facebook.com/docs/opengraph/tutorial/#authenticate)
To make it work, just use the FBML for the login button with the scope:
<fb:login-button width="200" max-rows="1" scope="publish_actions">
</fb:login-button>
Works only for test users and developers instantly, but I guess that when my actions/objects will be approved, I will be able to roll this to all of my users.
I created web application using Facebook C# SDK 5.3.2. I can post messages to my wall. But I want to collect access tokens for my friends' Facebook accounts and store them to use later to post messages to their wall.
Is it possible to get their access token with their Facebook account info. I can get access token for myself with "App ID" and "App Secret. Do I need also add application for my friends' Facebook to get this credentials.
You don't need to store access_token for any user, since it's something time based.
Instead ask for publish_stream permission and post messages to their wall using application access_token
From Facebook documentation on publish_stream permission:
Enables your app to post content, comments, and likes to a user's stream and to the streams of the user's friends. With this permission, you can publish content to a user's feed at any time, without requiring offline_access. However, please note that Facebook recommends a user-initiated sharing model.
the only way to get it done, is that your friends login into your application with their accounts and grant you the publish permission (if you want to publish when they are online) and the offline_access permission, to publish in any moment.
You have to think in the big security issue that this situation potentially represents.
Good luck.