How to preview Collections for my Open Graph Test User? - collections

I'm in the process of preparing an Open Graph Collection for submission to Facebook for approval.
The approval process requires publishing 8 actions to my Open Graph Test User, and I would like to preview this user's collection before hitting submit to ensure everything is good.
The docs indicate that app collections can be viewed by going to http://facebook.com/me/app_[namespace].
When I am logged in with my personal FB account, I can navigate to the above URL, using either the app's namespace or APP_ID, no problems.
But when I switch to the Test User and enter this URL, I seem to go through two or three redirects (the address bar cycles through URLs), before being returned to the Test User's timeline.
How can I view the Open Graph Test User's collection for my app?

Related

Flutter - Create sharable profile link

I am trying to create a Social media kind of networking Flutter app in which user can share his profile link. That link must redirect directly to user's profile if app is installed else redirect to link to download app. I am using Firebase as backend. Any resources or packages to work with?
You can use the package Share to enable the user to share their profile themselves. Its really easy to use.
If you would like to share a profile you will need to provide the navigational route to get to the profile screen, then provide the user's ID/data to get/view the desired data.
As far as getting a deep link to get the user to download the app if it is not installed, you can use firebase's dynamic link feature. You can customize what the link preview looks like and says. They have really good docs that you can follow.
You could use a Firebase dynamic link.
A dynamic link is basically a link pointing to possibly 3 resources:
Web URL
Android (Google Play) App ID
iOS (App Store) App ID
So once you configure it on Firebase (it's simple to configure), when the user access the link, Firebase will employ a decision tree to decide where to send the user.
In case the access is done on a mobile device, but if the app is not downloaded, it'll send the user to the store, and after returning from the store, will send the user to the correct path you've configured, following the link.
And on the app, you can implement the SDK to handle this link and when receiving this route request, redirect the user to the right profile they want to access.
I could go through the whole process, but I suggest you check the whole Firebase documentation:
https://firebase.google.com/docs/dynamic-links
In case you have a question on that where I can explain further, just let me know.

Why do I get downloads from the US even though my app is only available in the German Play Store?

I recently released my quiz app in the german Play Store and I get some impressions/downloads from the US which is odd since it should not be visible to the Play Store there. I am using Firebase authentication and I also see that some users authenticate but in my database they don't have an account (username, avatar etc.) which also can't be because after you login with Google you get to a page where you can choose your username and in the second you reach to this site, a user document will be automatically created, but in some cases it does not get created.
I noticed this behavior since my app was in beta testing.
Is it a normal behavior that there are some users who can see and are able to download an app that is usually only available in one country?
It can happen because google play console generates pre-launch reports for your app, so I think they use dummy accounts to login into your application. It can also happen when you submit an update to your app and it goes through a review process.

Realtime Overview Analytics only showing one user at a time

When viewing the RealTime Overview section, I notice that when a new user comes online the previous user immediately disappears and is no longer shown in realTime. The next day analytics only shows history data for one visiting user, I know for a fact that this is incorrect, there should be data for multiple users.
I send up analytics data with a simple https request(shown below) . This works for all my other applications. The only difference is that I send up the uid for this app , could this be causing the issue that I am seeing ?
Views
https://www.google-analytics.com/collect
?v=1
&z=14807
&tid=<OUR-UA-ID>
&cid=2535285330542042
&dp=message_6
&dt=message_6
&cd=message_6
&an=freemium_3
&av=3
&uid=123456789
&t=screenview
Events
https://www.google-analytics.com/collect
?v=1
&z=52130
&tid=<OUR-UA-ID>
&cid=2535285331158735
&dp=authentication
&dt=authentication
&cd=authentication
&an=freemium_3
&av=3
&uid=123456789
&ec=authentication
&ea=get_user_info
&t=event
The "cid" in your http call is the client id, where client refers to the device or program that makes the request. It is usually stored in a cookie (on the web) or generated by an SDK (in an app) and is used to unify subsequent requests from the same device into sessions. Since it is set by the client it differs from device to device (and browser to browser), so it can not be used to identify a person across multiple devices.
After it became the rule that any given person might have two or more devices Google came up with the uid, the user id (which by their own TOS might not identify the user, so this is a bit of a misnomer; think "cross device tracking id" and the concept becomes clearer). The uid is set by serverside code, i.e. after the user logs in. Not only this allows to unify visits from multiple devices into distinct users, it also alleviates privacy concerns (since it is supposed to be only created after a users action; there are separate TOS which you have to accept if you create a user id view in the GA interface, and they stipulate that you have to secure the users agreement to use to user id feature).
So if you set the same user id in your code the sessions will be attributed to the same user, even when the cid differs; this is by design and is indeed the point of the uid.

Facebook APP User ID

I created a php script, using a standard php example on how to get user information (user id and name) with PHP Facebook SDK.
I also created 2 facebook apps (one before one month and a second today).
When I use the first app with my code, I get back the right Facebook User ID but when I use the second app I get back something like this 10152375153XXXXX instead of my id.
Both of these apps have the same settings.
Has FB changed something in the new apps?
As of 4/30/2014 and the launch of the Graph API version 2.0, applications will receive what is called an "app-scoped" id instead of the canonical Facebook user id. This is a benefit to users as less information is being provided to app developers and they are more in control. It also stops different apps (not owned by the same developer) from associating users and their data. https://developers.facebook.com/docs/graph-api/quickstart/v2.0

Do OpenGraph Actions have to be approved before they can be used in testing?

I've created an open graph action, and so far I can only seem to use it to post the test page that Facebook has generated for me (I'm messing around with curl and a webserver serving the correct kinds of metadata).
Is this a restriction on actions (where, for sandboxed applications, only actions which have been approved can post real updates to a timeline), or am I likely looking at a bug?
In the app dashboard, you can create roles. Create one test user. After you log in from the test user (that will log you out from your original account), you can test freely. Or else, you can not post for global users unless your actions are submitted (via app dashboard -> open graph) and approved.

Resources