Implementing social post visibility in web app - mongodb

I want to implement a social network posting feature with post, comment, and set post visibility features in my application.
I am using Meteor platform. Put aside for a while the fact that relational databases are more suited to social network related data. I will use relational documents in separate collections for storing posts and comments and their meta data like poster or commented, with references. So, for reading, I will simulate sql-like joins with one of the meteor packages supports this in server side publish.
But I am not certain how I will implement post visibility setting in order to make a post visible to people that a poster wants the post be visible to, and invisible to people a poster wants them not to see. Visibility presets are "only me", "friends", "friends of friends", "groups", and individual specific groups that the user is a member of, and "public".
So far my collections are "users", "friends", "memberships" (referring to groups)", "posts", "comments", "likes". I can publish a reactive join of a desired combination of the posts, comments, likes, users by say reywood:publish-composite, package.
What is the preferred way of implementing this behaviour in the publish level? Or it is not a good idea at publish level, just try a conditional (iffy) publish.

Related

How to send notifications to specific users in Microsoft Teams (across multiple teams) from an external api

I want to notify (can be activity feed or 1:1 chat) specific users in Microsoft Teams via an external api. The teams can be of different organizations. I looked into the docs as well, but couldn't figure out the solution. Is this even possible?
Yes, this is definitely possible - it requires you to build a bot to enable pro-active messaging. There are actually a few different approaches and API options for doing this, but I've got a very comprehensive example of one of the approaches, that includes a .Net and a Node.js sample, at https://github.com/HiltonGiesenow/teams-dev-samples/tree/add-proactive-messaging-sample/samples/bot-proactive-messaging. There are links at the bottom of the page to various additional readings as well for more info.

How can we collect the facebook group request data using a chrome extension?

Is there any way that we can collect data by asking the questions when someone wants to join the group. And we collect the data when we approve the joining request or sometimes programmatically?
Could you please elaborate on how we can use Facebook GRAPH API for fulfilling the above purpose?
Check out GroupTrack CRM...it's a CRM that is integrated into Facebook via a Chrome Extension. It does exactly what you asked (one click to approve individual or all pending members while also saving their answers to your questions and adding them to the CRM), along with a ton of other awesome stuff.
Keep notes and tags, track sales funnel stages, bookmark posts and comments, set follow up tasks with reminders, and more across unlimited Groups. Everything is synced in real time with a web app as well, so you can access your contact information from anywhere, plus it can be set up to integrate with external systems (Google Sheets, Streak, and Kartra at the moment, but many more to come).
Lastly, GroupTrack supports teams, so if you run a Group with other admins, you can share access to the CRM and have everything kept in sync. It's awesome!

facebook Messager URL with predefined message

All I'm looking to do is invoke a chat with a predefined message. The following URL does exactly what I'm looking for but it does not appear I can pass in a predefined message. Is there?
https://m.me.com/<USER_ID>
Is there a different URL or API that I can use to invoke a FB message?
Elaborating on the comments to this effect, Facebook's developer guidelines under the sub-heading 2. Give people control explicitly disallow pre-filling of content:
Don’t prefill any content in captions, comments, messages or the user message parameter of posts unless (a) it is a single hashtag in a post shared through our Share Dialog (but not via our APIs), (b) it was created by the person using your app, or (c) it was created by a business whose employees use your app to administer the business’s presence on Facebook.
In the case that you do satisfy one of the above conditions, I believe the solution may be to use a m.me link, although I am not at all certain how to go about crafting the USER_DEFINED_PAYLOAD in a useful manner. This question may provide more useful information for the specifics of implementation, but the consensus in answers is that even in the 3 cases where it is allowed to pre-fill, such a model is explicitly discouraged by Facebook. (This likely explains why they do not appear to document how to do this, and few if any good answers exist online).

list of companies using facebook graph API in a specific region (defined by lat/lng)

If I search for all pages for a particular business (say IBM), the result JSON has many objects, each one's category could be one of "Local business", "Company", "Product/service", "Computers", "Internet/Technology", "Computers/technology" or something else. Which one of these is the company info? or is there a graph API which gives company info?
EDIT: Just to clarify my question further, when I do a get request using this reference, the JSON result is an array of entities, each with unique facebook id. Is there a way to know which one refers to IBM headquarters? or regional offices or something else.
Currently, "category" doesn't make any sense to me.
To what I have seen the facebook API for pages is not very advanced, the developers page would be more helpful.

A personalized email algorithm

I've been delving into a lot of recommendation algorithms lately (collaborative filtering mostly) and I've found quite a lot of answers on recommending an item based on either a specific user or item (which is part of what I want to do, so that works out). I also want to sent out somewhat-personalized emails, meaning given an email with a certain set of products, pick a set of users to send out the email to.
What would be the best way/algorithm to go about doing this?
For this, you simply turn around the usual collaborative filtering process: instead of recommending items to users, you recommend users to items. You are therefore guessing which users will most like a given item.
Just feed in product IDs as "user IDs", and your real user IDs as "item IDs" into a collaborative filtering system like Apache Mahout. It will recommend users ("items") that would be best for any given email ("user").
Of course you still need input data. Perhaps you have collected a past history of which users have rated or bought or viewed products. That is still your input.