Automattic / jetpack

Security, performance, marketing, and design tools — Jetpack is made by WordPress experts to make WP sites safer and faster, and help you grow your traffic.
https://jetpack.com/
Other
1.59k stars 798 forks source link

Followers Widget: include count of Facebook page followers in the total #15528

Open glendaviesnz opened 4 years ago

glendaviesnz commented 4 years ago

Facebook rejected our use of the user_friends permission, which means Facebook friends are not included in the following count:

count

Rejection details:

reject

They are correct that we are not using in the way it is supposed to be:


user_friends Requires App Review.

The user_friends permission allows your app to get a list of a user’s friends using that app. You can use this permission to create a social experience in an app via a list of friends.

Allowed Usage Providing Facebook-related content to personalize a person’s experience.


So we need to decide if we go back and push them to accept this usage, or remove the code that tries to make this call so it at least isn't making failed requests.

Currently user_friends permission has been removed from oauth scope.

We need to decide if we argue with them about our usage of this permission, or accept it won't be part of the follower count and remove the related Facebook publicize code.

jeherve commented 4 years ago

Noting that depending on our choice, we may then need to update support documents: https://wordpress.com/support/followers/#social-media-followers https://jetpack.com/support/subscriptions/#faq

davemart-in commented 4 years ago

or accept it won't be part of the follower count and remove the related Facebook publicize code.

I'd vote to go this route.

mreishus commented 4 years ago

In facebook.php, fetch_follower_counts() followers two strategies. The primary strategy is to fetch the number of likes from facebook if possible, which does not need the user_friend permission. The backup strategy is to find the number of friends by accessing /me/friends, which does need the user_friend permission. This change stops the backup strategy from hitting the API; it always returns 0.

mreishus commented 4 years ago

Over on Phab, @creativecoder has suggested we review our appeal to FB for the permission to make sure we're providing the correct documentation. I'm fine with that, but I'm uncertain how to proceed since I wasn't a part of the original request. Maybe this needs to be handed over to explorers? Pinging @davemart-in.

creativecoder commented 4 years ago

@mreishus If you want to give me a facebook username, I'll add you as an administrator for the Facebook app. cc @pablinos, who has the most experience on Explorers with submitting the app for Facebook review.

pablinos commented 4 years ago

From memory, we decided to let this feature wither and die. It's a bit hacky and we're paging through the user's friends list, just to get a count of them. The user_friend permission is quite (for want of a better word) permissive, and it could put people off. "Why do you need access to my friends' information?"

We can certainly try to get the app approved for the permission, but there's a chance that if we let them know that this is the reason that it will get refused.

Removing the code seems like a good idea.

davemart-in commented 4 years ago

Yeah, based on Paul's feedback, I'd say let's just go ahead and remove the code.

creativecoder commented 4 years ago

It's a bit hacky and we're paging through the user's friends list, just to get a count of them.

There's no need for any hackery, as the endpoint now returns the total count of friends in the summary field.

The user_friend permission is quite (for want of a better word) permissive, and it could put people off. "Why do you need access to my friends' information?"

For the minority of users who are likely to investigate, we have a good system in the Jetpack docs for providing detailed privacy information for each feature at the bottom of the support page.

We can certainly try to get the app approved for the permission, but there's a chance that if we let them know that this is the reason that it will get refused.

From my perspective, it looks like the app was rejected because we didn't provide screenshots and a login for Facebook to test it. Seems like a silly reason to let it die, when it's just a bit of footwork to try again.

pablinos commented 4 years ago

There's no need for any hackery, as the endpoint now returns the total count of friends

Ah, that makes me wonder if I was thinking of a different feature now!

It's a coin flip for me. It doesn't seem worth the hassle to get a count of a user's friends. It's inaccurate for the statistic and we are bound to hit another API deprecation soon requiring more maintenance work.

Having said that it's probably not difficult to provide what they need. I had to produce a test site with a test user for the Instagram widget, so they could login and see it in place. They required a screencast for that, so screenshots would be easier.

creativecoder commented 4 years ago

It doesn't seem worth the hassle to get a count of a user's friends. It's inaccurate for the statistic and we are bound to hit another API deprecation soon requiring more maintenance work.

I don't really have an opinion on how valuable this feature is to users--if it's judged not to be valuable, I'm fine removing it. I just don't think we should remove it only because of a denial Facebook made 2 years ago without first trying again.

davemart-in commented 4 years ago

@creativecoder I guess from my perspective I'm kind of wary of inflating a sites "Follow" count with your Facebook follower numbers. It seems misleading to me since Facebook followers are not emailed new posts as it implies.

creativecoder commented 4 years ago

That makes sense to me. I wonder what we were thinking when we added that feature 😕

pablinos commented 4 years ago

I just don't think we should remove it only because of a denial Facebook made 2 years ago without first trying again.

I agree with that, let's not be lazy.

That makes sense to me. I wonder what we were thinking when we added that feature

I suppose they are followers, but it's true they're not getting an email.

Does that mean we're back to removing the code?

getdave commented 4 years ago

@davemart-in Please can you confirm the route you'd like to take here? Much appreciated.

davemart-in commented 4 years ago

@getdave Let's please remove the Facebook code. The follower count should just be the number of email subscribers your site has. If we want a Facebook followers count, it should just be a separate block. Happy to add that to the backlog if folks feel strongly about it.

creativecoder commented 4 years ago

The Jetpack support docs state the reason for this functionality originally:

If you’ve connected your site to any social networks using Jetpack’s Publicize feature, we add your followers from those into your subscriber count. This is because, when you publish a new post, your social media followers will see an update about the new content, just like your email followers will.

But Facebook hasn't allowed publishing to personal feeds for some time, Publicize is limited to publishing to Facebook Page now. That further supports removing code related to counting user_friends.

If we wanted to restore the intended functionality, we should look at the followers of the Facebook Page that Publicize is connected to--those are the number of users who are likely see the post through Facebook when it's posted there.

(props to @pablinos for noting this)