how to test a facebook app for different use cases. i will take a simple example here:
assuming i have a facebook app which just does the login to a site.
now, how do i handle/ test different use cases in this:
1) user is already connected to the site and logging in again using her facebook account
2) user is a first time user and want to login to my site through his facebook credential and she a) allows the app to access her details b) deny the app to access her details
these are the very basic test cases but there could be more depending upon what exactly what we want to do with that app and the site.
so my question is how does one test all these scenarios ? if i use my facebook account once then it doesn't allow me to test the other scenario (like if i once allow an app then it doesn't allow me to test the 'deny' scenario)
thanks in advance
dev
You can use test users for manual or automated testing.
Related
I’m trying to automate creation of ad accounts for my own business, and then upload custom audiences into these ad accounts. I wish to do this using a system user.
I have written some scripts to automate this process, but I am unsure how to receive the appropriate permissions from Facebook as I can not create a screencast, as my scripts has no UI. It’s just a collection of scripts.
Some research has a said that if apps only talk to a small number of accounts, you can just leave apps in dev mode to avoid going through app review, but I don’t think that’s possible in this case for the following reasons.
When my app is in dev mode, and I try to POST to https://graph.facebook.com/v7.0/<my-business-id>/adaccount to create a new ad account in my business, I get the error: "(#270) Development access is not allowed to access business API post:Business/adaccount.” OK. So my app has to be live for me to use this end point. If I set my app to Live, and then try to hit this end point, I get this error "(#294) Managing advertisements requires an access token with the extended permission for ads_management”
Then, looking at the permissions screen in my app, it appears I need to submit an app review with a screencast to be able to use the ads_management permission.
Additionally, if I want to use a system user, I can only approve permissions that have been approved by the app review process.
Given that my app has no UI (and nothing to screencast) how should I proceed? Or am I missing a way to do this without going through the app review process?
Facebook as provided instructions on how to submit those kinds of apps here, https://developers.facebook.com/docs/apps/review/server-to-server-apps:
If your app has no user interface because it exchanges data directly with our APIs, refer to this guide when configuring your app's Basic Settings, and when completing App Review.
I have 2 mobile apps. These apps have different names and branding. However, as both these companies are partners, we have the same login system. This means the user should be able to use the same login details for both apps.
I want to add Facebook login to both of these apps.
Solution 1: Use same FB App ID
The easiest option is to use the same registered Facebook App for both applications.
The issue here is that I need a different logo & app name to appear when logging in with Facebook. However, the FB dashboard only allows you to specify one app name & logo for each app.
Solution 2: Create another app in FB Dashboard
Another solution is to create another app in FB developer portal, and use 2 different FB ids. The issue here is that if a user logs into both apps, it is not clear that they are using the same account. Before we had a fb_id attribute, but it looks like we cannot use this anymore. Also, a user can revoke certain permissions on one app, and not the other, causing things to be out of sync.
How can I solve this issue?
So we've developed a Facebook App (and similar apps on Twitter and Instagram) that allow users to post and read content using an external system. We'll sell this integration directly to our clients, so it's a private application.
Basically the user will see a very simple page with a button "Log in to Facebook" and a disclaimer regarding the authorization (we'll use some query params fixed in the url, depending on the client). The client authorize us and we capture the access tokens.
To submit the app review, though, we have to explicitly give a test user to the reviewers, but that's not really possible because the real "action" happens within the integrated systems, NOT within the app itself. And those systems are not public (they shouldn't be).
So just to be clear: our app is basically a very simple "Facebook login" that we use to get tokens, generated by specific clients authorization. It's not going to be published anywhere.
Until we have around 5 to 10 clients we can add the specific users in our app as Testers/Admins/etc, but what if we scale up? Say we have 20 clients. How are we supposed to get our app to be "live"?
To follow the app review steps we would have to create some users in our local systems (we have some dev environments), open them to the internet so the reviewers can log in and see how it actually works? Is that it?
(btw I'm asking this because our app review was rejected twice and I want to make sure I'm submitting everything they ask this time).
Thanks :)
I think the Login Review FAQ answers most of your questions. The key point:
Our review team will actually test how your app uses each permission on every platform you have listed in the settings section of your app.... You'll need to explain exactly how to test each permission or feature in your app so that we can make sure it works and follows our policies. We can't approve your app if we can't fully test how it integrates with Facebook.
In other words, it's not enough to just allow them to log in to your app, you have to expose all Facebook-related features to the reviewer.
To follow the app review steps we would have to create some users in our local systems (we have some dev environments), open them to the internet so the reviewers can log in and see how it actually works? Is that it?
Yes, though I'm not sure what you mean by "open them to the internet". You should be able to create a test user on your local system and link that account to a test Facebook user. Then you can have the Facebook reviewer use that test account for their review. (From the FAQ: "In the Items in Review section, you'll see a Test User (optional) section that allows you to type the name of the user you wish to be used in your review.")
I am trying to test the Facebook login feature for a website staging environment, but when logging in with a test user I see this error message:
Error
User is not allowed to see the application.: The user is not allowed to see this application per the developer set configuration.
I have set App Domain to http://www.mysite-stage.com/. I've also added a Website platform for my app and set the site URL to http://www.mysite-stage.com/.
The website http://www.mysite-stage.com is actually accessible to everybody on the web, so there should be no issues there.
This method of testing Facebook integration for the site was working up to about 1-2 months ago, so I'm a little confused as to why it's not working anymore.
Are you sure you created the test user for that application?
Facebook won't let you login as a test user that was created under a different app than the one you are trying to sign in with.
Facebook test users are app-specific.
Yo can also create test users through the facebook developers site:
http://developers.facebook.com/apps/
- Select your app
- Roles
- Test Users
Since I can't add a comment yet, the problem is with you having made your app available to the public but you are trying to sign in with a test account.
Have you tried using the
installed=true
parameter once you use
POST /{app-id}/accounts/test-users
to create the Test Users? See https://developers.facebook.com/docs/graph-api/reference/app/accounts/test-users#publish
I have used Face book Apps for register and login for my website (in PHP). Problem is very simple for you all experts.
When I try to login via FaceBook using my email id which I am using for Facebook developer login then I succeed but if I give any other email ID I can't able to login.
Ex.
x123#yahoo.com is id which I'm using for Facebook Developer Account
a123#gmail.com is normal Facebook user account.
Now if use x123#yahoo.com for login in my website, I am successful and redirected to Profile Page)
But if I use a123#gmail.com for login in my website I FAIL and I come back on same page from where I tried to login
Any guidance will help me to move forward I'm stuck here
By the reading of your problem I think you have your app on Sandbox mode. If you want to test on other profiles, you should consider creating Test Users.
Depending of your purposes, you may create another app just to make your tests (and therefore need not to be on sandbox mode).