Facebook API page feed didn't send information to my webhook? - facebook-graph-api

I'm admin of my test app, and my test page.
Now I'm doing a function get page's feed realtime by webhook, just only on development mode.
When I click test button on App's Dashboard, It has been sent to my webhook. But when I comment or like ... the post, facebook doesn't send even though I subscribed feed webhook.
With Messages, it has been sent successfully, but Feed doesn't.
I ask facebook support, so they said that:
"Applications will only be able to receive test webhooks sent from the
app dashboard while they are in development. No production data,
including that of app admins, developers, and testers, will be
delivered unless the app is live. In order to receive feed webhooks,
your app needs to be live and has to go through app review for
necessary permissions."
I understand that I can not get data from facebook even though it is under development mode.
So how can I get data returned by facebook to develop, test... apps in development mode.
Thanks so much.

It is not possible to run this service without an app review, since it is not possible to add the 'mange_pages' permission to a (test-)user within a development app. At the same time it is not possible to turn a testapp into live-mode. As the same is true vice versa the only solution is the app review to get information from a specific (test-)page.
For live testing i suggest to create a testuser and subscribe for information about the "user" to test your webhook.
You can check with GET graph.facebook.com/app-id/subscriptions, if your app is successfully subscribed to "page information". Graph API Documentation
As you already mentioned you can also send "page information" test calls to your endpoint.
UPDATE 18th Nov 2018
If you go to Webhook -> pages in your App Dashboard on https://developers.facebook.com you are able to notice, that Webhooks in dev mode do not work.

I've submitted a Bug report to Facebook for this issue, as there is no proper solution.
You can check it at : https://developers.facebook.com/support/bugs/1570460936387604/
I also don't get the fact that you can't test webhooks in dev mode, and you can't do the app review because you can't develop your app and show them for review.
Just a chicken and egg issue.

Related

Google Cloud API Services Oauth with a Testing App

I have a small personal-use only app that logs into a [throw away] gmail account to pull out an auth-token so it can then run a scheduled job (turning on/off my home cameras). Its dead simple and works, except that the app is in GCP TEST mode and it looks like the gmail auth expires in 7 days.
I highly doubt based on the below requirements that I can promote the app, and I dont want to publish it regardless. I tried GCP Support and wound up here. Im sure Im not the only person that has dealt with the 7 day expiration on a personal project. Any ideas?
If you check the documentation for oauth2#expiration
A Google Cloud Platform project with an OAuth consent screen configured for an external user type and a publishing status of "Testing" is issued a refresh token expiring in 7 days.
The key hear is setting your project into production.
What you are showing in that image are requirements for application verification. You shouldn't have to go though verification for a single user app.
Try just setting it to prodcution and then wait a week and see if it still expires. It shouldn't
I highly doubt based on the below requirements
Unfortunately with the new security restrictions. I wouldn't doubt anything these days. They keep changing the rules.

Google Cloud app verification step: Your app will be available to any user with a Google Account? What does it mean?

I have created a Youtube API application to enable access to Youtube API for Integromat. All my Youtube API application does it gives access to my Youtube channel videos for Integromat. Integromat grabs the links to videos and uploads the links to my Airtable. So the only user for the Youtube API is going to be myself and my own Integromat workflow.
The Youtube API app is in development. I want to verify the app to get rid of the 1-hour deactivation of the authorization (Integromat connection to Youtube API breaks after 1 hour).
To get verified, I looked the steps here https://support.google.com/cloud/answer/7454865?hl=en. The first step it tells me to do is "Update the OAuth consent screen details" and I go to that screen and shows the publishing status. Do I click to "publish to production"?
When I click that, it tells me:
Your app will be available to any user with a Google Account.
Screenshot showing the step to publish my app
That's sounds scary. What does it mean?
I do not need (nor want) have other users logging to my Youtube API. I am the only user and Integromat is the only app that will access the Youtube API.
I am novice in this and don't have much idea about programming so I don't even know what questions I should be asking here.
Thanks.
Here are more details about what I am trying to do in Integromat:
Youtube API Integromat testing app - connection getting disabled
It means that you will be able to share your app via that link with anyone you please. The whole point of an API is that it's available publicly, at least on a technical level. Whether you're actively soliciting users is an entirely other matter, naturally.

Youtube API Integromat testing app - connection getting disabled

I don't have much idea about API but I managed setup Youtube API so that I am able to use Integromat workflow between Youtube and Airtable.
It works fine.
The issue I have is the connection between my Youtube API at Integroat is getting disconnected after a few days / weeks and have to re-verify(reconnect) to Google account again.
The Youtube app was setup properly (as instructed by Integromat) and as I said it works..... it's grabbing URLs of new Youtube videos on my Youtube channel and it is pushing those URLs into Airtable.
Now have even added mysef now as the user of the app. Wasn't listed as the user there (1 out of 100). Could that be the reason?
The Youtube API is setup as a test-app. Is that the reason for the disconnects at Integromat?
Do Ineed to request Google to have the app verified? Or can I continue with the app being a test app? (Because it says it hasn't been verified).
I don't know much about what I am doing but it sees working fine for me so I guess I managed to set it up OK except for the one issue with connection loss.
Pic:
The 2nd and 3rd item on the 2nd picture is for the Youtube API connection... and that is where I am being asked every now and then by Integromat to reconnnect the connection.. then I need to login and Google wanrs me my application wasn't approved so I pick continue etc...
The issue I have is the connection between my Youtube API at Integroat is getting disconnected after a few days / weeks and have to re-verify(reconnect) to Google account again.
This is because your authorization has an expire time. Access tokens by default work for one hour. If you want your application to refresh its access then you need to request offline access and store the refresh token and then use that to refresh your access whenever you need it.
On unverified apps refresh tokens will expire after a very short time this is because your application is considered to still be in development. YOu should apply for verification when you are ready to go to production. until that time you will need to login again regularly but as you are in development this sholdnt be to much of a problem.

Cannot message users who are not admins, developers or testers of the app until pages_messaging permission is reviewed and the app is live

I'am building bot with microsoft bot framework.
Successfully published on azure and connected with microsoft bot framework.
For skype bot is working properly, but for facebook it shows an error :
{"error":{"message":"(#10) Cannot message users who are not admins,
developers or testers of the app until pages_messaging permission is
reviewed and the app is
live.","type":"OAuthException","code":10,"error_subcode":2018028,"fbtrace_id":"AXwQF7NQvLs"}}
I followed instructions from here for my bot to facebook connection.
how long it takes to approve my application ?
and
is approving my app is my only problem in this case ?
This sounds like if you haven't available your app to Public.
You can do that inside this URL:
https://developers.facebook.com/apps/YOURAPPID/review-status/
Inside this, you need to set the app available for the public.
This is a perfectly fine behaviour. All bots must be submited for a review before going public. If your bot is not public - only testers/devs/admins can communicate with bot.

Sample of using Facebook Connect with MonoTouch

I'm using MonoTouch (latest version) and I want to be able to allow the user of my app to make a wall post based on a log entry made in this app. All I need is a simple implementation so that the user can tap "Share on Facebook" (UIActionSheet) and then it logs them into Facebook (shows the login) and returns the token which I can then use to make the WebRequest to post to their wall.
I've seen the MonoTouch bindings on github but have no idea how to use it. Can someone please provide a simple sample of how to just login to Facebook to retrieve a token so I can post. I know how to do the post, it's the auth process that I'm not getting right.
Thank you.
Neal
Neal,
I have added a sample that replicates about half of the Facebook sample here:
https://github.com/mono/monotouch-bindings/tree/master/facebook/sample
I would recommend to use client-side javascript login more than native device login.
Sooner or later you might want an Android, Windows Phone or even Facebook version.
Having an In-App browser wrapper to deal with javascript and direct Graph API calls are easier for cross-platform implementation. Just from my personal experience.