Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LinkedIn Connector #141

Open
plamarque opened this issue Jun 5, 2024 · 8 comments
Open

LinkedIn Connector #141

plamarque opened this issue Jun 5, 2024 · 8 comments
Labels

Comments

@plamarque
Copy link
Member

plamarque commented Jun 5, 2024

Rationale

LinkedIn is a major platform for all work organizations to meet workers. Many Web3 projects and Web2 brands and companies use it to reach an audience and promote their organization, products, or services. Meeds can help design fair and equitable incentives for contributors who support their organizations on LinkedIn.

1. Functional Requirements

Contributor

  • As a contributor, I can connect my LinkedIn account to my Hub account from my User Settings > Other Apps
    linkedin-usersettings-otherapps
  • As a contributor, my connected LinkedIn profile is displayed on my user profile
    linkedin-userpofile-linkedin
  • As a contributor, I can only participate in LinkedIn actions when my LinkedIn account is connected to my Meeds account.
    • If my LinkedIn account is not connected, then a call to action button is displayed on the action instead of the Contribute button :
      linkedin-cta-connect
    • When clicking on it, the oAuth window opens so the user can connect to his account.
    • Once done, the detail drawer is updated, and I can participate

Program Owner

Like

  • As a program owner, I can create automated actions for the "LinkedIn" application to track when users Like a given post
    linkedin-like-action
  • When adding / editing or displaying a Like action, I can see a preview of the LinkedIn post as an embed (iframe) within the drawer.

Comment

  • As a program owner, I can create automated actions for the "LinkedIn" application to track when users Comment on a given post
    linkedin-comment-action2
  • When adding / editing or displaying a Comment action, I can see a preview of the LinkedIn post as an embed (iframe) within the drawer.

Repost

  • As a program owner, I can create automated actions for the "LinkedIn" application to track when Repost a given post
    linkedin-repost-action2
  • When adding / editing or displaying a Repost action, I can see a preview of the LinkedIn post as an embed (iframe) within the drawer.

Mention

  • As a program owner, I can create automated actions for the "LinkedIn" application to track when @mention (aka tag) a given LinkedIn account.
    linkedin-mention-action2

Follow

  • As a program owner, I can create automated actions for "LinkedIn" application to track when users Follow a company page
    linkedin-follow-action2
  • Companies available to select are from the list configured by the Hub administrator

Work For

  • As a program owner, I can create automated actions for the "LinkedIn" application to track when a user adds a work experience on a given company
    linkedin-workfor2
  • Companies available to select from list configured by the Hub administrator

Hub Administrator

  • As a Hub administrator, I should configure the LinkedIn connector to let users connect their LinkedIn account to their Meeds profile
    linkedin-admin-userconnect

  • As a Hub administrator, I may configure the LinkedIn connector to use my oAuth Application credentials (Client ID and Client Secret)

Image
Image

  • As a Hub administrator, I may select companies to watch on LinkedIn

LinkedIn-companies-to-watch

  • As a Hub administrator, I may enable/disable what events will be able to program owners when creating their LinkedIn actions
Event Name Description Contribution Owner Cancel Event
Like Like or any reaction to a given post user who reacted Unlike
Comment Comment a given post user who commented Comment is removed
Repost Respoted a given post user who reposted Repost is removed
Mention @ mention a given account user who mentioned Mention is removed
Follow Company Follow a company page user who followed Unfollow
Work for... User declares experience as working for a given company user who added the experience experience removed

linkedin-connect

Impacts

Gamification

Notifications

Analytics

  • Track actions triggered

Unified Search

2. Technical Requirements

Expected Volume & Performance

Security

The oAuth tokens SHOULD NOT be stored in the Meeds database; they should only be used to validate user accounts on external providers.

LinkedIn's API key (secret) to transmit triggered events into the Meeds server MUST be generated by the hub administrator using a specific UI in the Gamification administration UI inside LinkedIn connector settings. This Meeds API Key has to be encrypted using CodecInitializer before being stored in the database.

The Hub administrator MUST provide LinkedIn oAuth Client and Secret keys in a dedicated UI. Those oAuth Keys must be encrypted using CodecInitializer before being stored in the database. These keys will be used to validate the oAuth token provided by the user from the Meeds Server to the LinkedIn Server.

Extensibility

Configurability

Upgradability

Existing Features

Feature Flags

Property Name Default Value Target Audience Functional Behaviour

Other Non-Functional Requirements

3. Impacts

Documentation

Training

4. Software Architecture

Security

Access

  • GUI
  • API

Services & processing

  • Ex: Scheduled Jobs

Data and persistence

  • Macro data model
  • Persistence layer
  • Use of caches

Clustering

Multitenancy

Integrations

The connector will use Community Management APIs

Migration strategy

5. Annexes

  • Reasoning that explains the technical choices
  • Impacts
  • References
@plamarque plamarque changed the title LinkedIn Connectorfeat: FEATURE TITLE LinkedIn Connector Jun 5, 2024
@plamarque plamarque moved this to Draft in MIP Board Jun 10, 2024
@plamarque plamarque moved this from Draft to Submitted in MIP Board Jun 11, 2024
@plamarque
Copy link
Member Author

@srenault-meeds @margondicco please check for functional requirements. It's similar to Twitter connector.

@srenault-meeds
Copy link
Member

Thanks.

Feedbacks/questions:

As a Hub administrator, I can setup the LinkedIn administrator with the oAuth credentials of my organization

  • Do you mean "setup the LinkedIn account"?

As a program owner, I can specify the minimum number of connections a contributor's LinkedIn account should have to earn with the LinkedIn actions

  • I know there is a difference between connections and followers. Do we only capture the connections number or also the followers? Regarding LinkedIn events, does this difference exist?

@plamarque
Copy link
Member Author

Do you mean "setup the LinkedIn account"?

I meant the connector. fixed.

Do we only capture the connections number or also the followers?

connections only (followers does not seem available in the APIs so far)

@plamarque
Copy link
Member Author

@srenault-meeds @margondicco mockups added

@srenault-meeds
Copy link
Member

Ok for me.
Please make sure the linkedin icon color below is the official blue of LinkedIn: #2867b2
image

@plamarque
Copy link
Member Author

Ok for me. Please make sure the linkedin icon color below is the official blue of LinkedIn: #2867b2 image

done

@srenault-meeds
Copy link
Member

Ok for me. I let @margondicco check it as well

@sergeByishimo
Copy link

sergeByishimo commented Aug 21, 2024

LinkedIn Event Required API Status
Likes or Reactions on company posts
Possible values are:
- LIKE: "Like" in the UI
- PRAISE: "Celebrate" in the UI
- EMPATHY: "Love" in the UI
- INTEREST: "Insightful" in the UI
- APPRECIATION: "Support" in the UI
- ENTERTAINMENT: "Funny" in the UI
Reactions API ✅ OK
Comments on ompany posts Retrieve Comments on Shares API ✅ OK
Repost by users Find Posts by Authors API ❌ KO : I'm facing a permission issue with this API. I'm getting this error Member permissions must be used when using member as author . It requires r_member_social permission. I'm using w_member_social in the API calls. There is no r_member_social in the access token generator. Documentation says r_member_social permission is Restricted . It is a private permission.
Mention by users Potential API if not the above : Pull Organizational Notifications ❌ KO : In testing. This API allows to pull 60 days of organization notifications for different events : LIKE, COMMENT, SHARE_MENTION, ADMIN_COMMENT, COMMENT_EDIT, COMMENT_DELETE
The issue is in the response it doesnt specify who did the like, or mention, you must perform another API to know. Still testing it
Work For Profile API Field Selections using the Position Field ❌ KO : Retrieving Current User's Profile returns only Basic profile fields, which does not include work experience.

Retrieving Other Member's Profile, you will need access to the Person ID, available only via certain limited access APIs and subject to member privacy settings.

As a result I'm getting this error ACCESS_DENIED : Unpermitted fields present in RESOURCE_KEY: Data Processing Exception while processing fields [/memberId]
Follow Company People Typeahead API : Search by Keyword for Organization Pages ✅ OK

sergeByishimo added a commit to sergeByishimo/gamification-linkedin that referenced this issue Aug 27, 2024
sergeByishimo added a commit to sergeByishimo/gamification-linkedin that referenced this issue Aug 27, 2024
sergeByishimo added a commit to sergeByishimo/gamification-linkedin that referenced this issue Sep 17, 2024
plamarque added a commit to Meeds-io/gamification-linkedin that referenced this issue Sep 17, 2024
sergeByishimo added a commit to sergeByishimo/gamification-linkedin that referenced this issue Sep 17, 2024
plamarque added a commit to Meeds-io/gamification-linkedin that referenced this issue Sep 17, 2024
sergeByishimo added a commit to sergeByishimo/gamification-linkedin that referenced this issue Sep 17, 2024
sergeByishimo added a commit to sergeByishimo/gamification-linkedin that referenced this issue Sep 17, 2024
plamarque added a commit to Meeds-io/gamification-linkedin that referenced this issue Sep 18, 2024
sergeByishimo added a commit to sergeByishimo/gamification-linkedin that referenced this issue Sep 18, 2024
plamarque added a commit to Meeds-io/gamification-linkedin that referenced this issue Sep 18, 2024
sergeByishimo added a commit to sergeByishimo/gamification-linkedin that referenced this issue Sep 18, 2024
plamarque added a commit to Meeds-io/gamification-linkedin that referenced this issue Sep 18, 2024
sergeByishimo added a commit to sergeByishimo/gamification-linkedin that referenced this issue Sep 18, 2024
sergeByishimo added a commit to sergeByishimo/gamification-linkedin that referenced this issue Sep 18, 2024
plamarque added a commit to Meeds-io/gamification-linkedin that referenced this issue Sep 18, 2024
sergeByishimo added a commit to sergeByishimo/gamification-linkedin that referenced this issue Sep 21, 2024
plamarque added a commit to Meeds-io/gamification-linkedin that referenced this issue Sep 22, 2024
sergeByishimo added a commit to sergeByishimo/gamification-linkedin that referenced this issue Sep 23, 2024
plamarque added a commit to Meeds-io/gamification-linkedin that referenced this issue Sep 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Submitted
Development

No branches or pull requests

3 participants