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

Bluesky Social (Independent Publisher) #3706

Open
wants to merge 44 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
521eed6
Add Bluesky API (Independent Publisher) connector files
krautrocker Nov 10, 2024
bc3b017
Updated swagger file to include default responses and added .gitignore
krautrocker Nov 10, 2024
dcb205c
- Updated connector title and description to jive with standards
krautrocker Nov 10, 2024
ea3bcd3
- Updated security definitions to Basic, not API Key
krautrocker Nov 10, 2024
c7d86e5
- Added new paths
krautrocker Nov 10, 2024
062b2a9
- Added new path to get hydrated feed
krautrocker Nov 10, 2024
cfe930b
- Added more paths
krautrocker Nov 10, 2024
14b5e64
Revert "- Updated security definitions to Basic, not API Key"
krautrocker Nov 11, 2024
1d0cb18
- Added more endpoints
krautrocker Nov 11, 2024
fba5fbd
- Added additional endpoints
krautrocker Nov 11, 2024
7015781
- Updated readme.md
krautrocker Nov 11, 2024
69c23c1
- Added admin endpoints
krautrocker Nov 11, 2024
2a2bb7b
- Doc format
krautrocker Nov 11, 2024
ed4fd72
- Changed basic auth to bearer token auth
krautrocker Nov 11, 2024
2fdf7d2
- Overhaul after convo with Troy Taylor
krautrocker Nov 11, 2024
b790d0b
- Change contact email, placed in readme
krautrocker Nov 11, 2024
bc0f316
- Adjusted endpoints as per paconn validator
krautrocker Nov 12, 2024
129109d
- Further updates to conform
krautrocker Nov 12, 2024
7fcf495
- Updated title to remove a forbidden word
krautrocker Nov 12, 2024
0cc10e5
- Resolved all errors via paconn validate in swagger file
krautrocker Nov 12, 2024
faade2e
- Swagger refinement
krautrocker Nov 12, 2024
0511135
- Additional endpoints
krautrocker Nov 13, 2024
a72638e
- Removed file
krautrocker Nov 13, 2024
8d565f5
- Initial commit for Bluesky Control Panel (temporary name) to includ…
krautrocker Nov 13, 2024
7fe621f
- WOOF
krautrocker Nov 13, 2024
78ed38e
- Endpoints added
krautrocker Nov 14, 2024
46822f1
Remove unnecessary .gitignore files
krautrocker Nov 15, 2024
82a7798
- Updated endpoints
krautrocker Nov 15, 2024
2d70bbf
Delete .gitignore
krautrocker Nov 15, 2024
df5e4a5
- Additional endpoints for app.bsky, pre-paconn validation
krautrocker Nov 17, 2024
aab0104
- Added additional endpoints
krautrocker Nov 17, 2024
0e5a75f
Merge branch 'bluesky-social-connector' of https://github.com/krautro…
krautrocker Nov 17, 2024
7fa02a7
- Updated operation Ids to start with an upper-case letter
krautrocker Nov 17, 2024
daa0a09
- Updated folder name, IP not required in folder only PR title
krautrocker Nov 17, 2024
8edf66f
- Updated readme to include additional endpoints
krautrocker Nov 17, 2024
387d7a7
- Updated readme
krautrocker Nov 18, 2024
4698652
- Authentication update, OAuth no dice
krautrocker Nov 18, 2024
76d7c3a
- Fixed security definitions
krautrocker Nov 19, 2024
921ed14
- Updated apiProperties
krautrocker Nov 19, 2024
2209852
- Further update to apiProperties
krautrocker Nov 19, 2024
f8c8b7c
- Re-factored all endpoints. They should match the API docs + GitHub …
krautrocker Nov 20, 2024
9876ee0
- Added additional endpoints.
krautrocker Nov 21, 2024
682bb39
- Added additional endpoints.
krautrocker Nov 22, 2024
d852b8d
- Futzed around with the multipart/form-data endpoints - uploadVideo,…
krautrocker Nov 22, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
136 changes: 136 additions & 0 deletions independent-publisher-connectors/Bluesky Social/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
# Bluesky API Connector
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please update readme.md file with all the required fields mentioned in the below link.

https://github.com/microsoft/PowerPlatformConnectors/blob/dev/templates/Independent%20Publisher/readme.md


- **This custom connector allows Power Platform apps to interact with Bluesky's API, supporting operations for managing feeds, conversations, notifications, video uploads, and account data.

## Supported Endpoints

- **To use this connector, you will need:

- **A Bluesky account.
- **API access to Bluesky with App Password.

## Obtaining Credentials

- **Go to the Bluesky Developer Portal.
- **Register your App Password in Settings.

## Supported Operations

- **This connector includes the following operations:

### Feed Endpoints

- **GET /app.bsky.feed.getTimeline — Retrieve a user's timeline posts.
- **GET /app.bsky.feed.getFeed — Retrieve posts from a specific feed or tag.
- **GET /app.bsky.feed.searchPosts — Search for posts matching a query.
- **GET /app.bsky.feed.getActorFeeds — Retrieve feeds posted by a specific actor.
- **GET /app.bsky.feed.getActorLikes — Retrieve posts liked by a specific actor.
- **GET /app.bsky.feed.getAuthorFeed — Retrieve posts from a specific author's feed.
- **GET /app.bsky.feed.getFeedGenerator — Retrieve a generated feed for a user.
- **GET /app.bsky.feed.getFeedGenerators — Retrieve metadata about all feed generators.
- **GET /app.bsky.feed.getFeedSkeleton — Retrieve a minimal skeletal version of a feed.
- **GET /app.bsky.feed.getListFeed — Retrieve posts from a specific list.
- **GET /app.bsky.feed.getPosts — Retrieve a list of specific posts by their IDs.
- **GET /app.bsky.feed.getPostThread — Retrieve the thread of posts related to a specific post.
- **GET /app.bsky.feed.getLikes — Retrieve users who liked a specific post.
- **GET /app.bsky.feed.getQuotes — Retrieve posts that quote a specific post.
- **GET /app.bsky.feed.getRepostedBy — Retrieve users who reposted a specific post.
- **GET /app.bsky.feed.getSuggestedFeeds — Retrieve suggested feeds for the user.
- **POST /app.bsky.feed.sendInteractions — Send interactions (like or repost) for a post.

### Actor Endpoints

- **GET /app.bsky.actor.getPreferences — Retrieve the user's preferences.
- **GET /app.bsky.actor.getProfile — Retrieve the profile of a specific user.
- **GET /app.bsky.actor.getProfiles — Retrieve multiple user profiles.
- **GET /app.bsky.actor.getSuggestions — Retrieve account suggestions for the user.
- **POST /app.bsky.actor.putPreferences — Update the user's preferences.
- **GET /app.bsky.actor.searchActors — Search for user accounts by query.
- **GET /app.bsky.actor.searchActorsTypeahead — Retrieve search suggestions for user accounts.

### Graph Endpoints

- **GET /app.bsky.graph.getActorStarterPacks — Retrieve starter packs of accounts for a new user.
- **GET /app.bsky.graph.getKnownFollowers — Get followers known to the authenticated user.
- **GET /app.bsky.graph.getFollowers — Retrieve a list of followers for a user.
- **GET /app.bsky.graph.getFollows — Retrieve users followed by a specific user.
- **GET /app.bsky.graph.getBlocks — Retrieve users blocked by the authenticated user.
- **GET /app.bsky.graph.getList — Retrieve a specific list of users.
- **GET /app.bsky.graph.getLists — Retrieve all lists for the authenticated user.
- **GET /app.bsky.graph.getListBlocks — Retrieve users blocked within a specific list.
- **GET /app.bsky.graph.getListMutes — Retrieve muted lists for the authenticated user.
- **GET /app.bsky.graph.getMutes — Retrieve muted users.
- **GET /app.bsky.graph.getRelationships — Retrieve relationships between the authenticated user and specified accounts.
- **GET /app.bsky.graph.getStarterPack — Retrieve a single starter pack for a new user.
- **GET /app.bsky.graph.getStarterPacks — Retrieve all starter packs for new users.
- **GET /app.bsky.graph.getSuggestedFollowsByActor — Retrieve suggested accounts to follow, filtered by an actor.
- **POST /app.bsky.graph.muteActor — Mute a specific actor.
- **POST /app.bsky.graph.unmuteActor — Unmute a specific actor.
- **POST /app.bsky.graph.muteActorList — Mute a specific list of actors.
- **POST /app.bsky.graph.unmuteActorList — Unmute a specific list of actors.
- **POST /app.bsky.graph.muteThread — Mute an entire thread of posts.
- **POST /app.bsky.graph.unmuteThread — Unmute an entire thread of posts.

### Labeler Endpoints

- **GET /app.bsky.labeler.getServices — Retrieve the list of labeler services available to the user.

### Notification Endpoints

- **GET /app.bsky.notification.getUnreadCount — Retrieve the count of unread notifications.
- **GET /app.bsky.notification.listNotifications — List notifications for the authenticated user.
- **POST /app.bsky.notification.putPreferences — Update notification preferences.
- **POST /app.bsky.notification.registerPush — Register for push notifications.
- **POST /app.bsky.notification.updateSeen — Mark notifications as seen.

### Video Endpoints

- **GET /app.bsky.video.getJobStatus — Retrieve the status of a video upload job.
- **GET /app.bsky.video.getUploadLimits — Retrieve the video upload limits for the user.
- **POST /app.bsky.video.uploadVideo — Upload a video file.

### Unspecced Endpoints

- **POST /app.bsky.unspecced.uploadBlob — Upload a binary blob to the user's account.
- **GET /app.bsky.unspecced.getBlob — Retrieve a binary blob from the user's account.


### Authentication

- **TBD - In progress

### How to Use

- **Each endpoint has specific parameters (such as user IDs, query strings, or result limits) that need to be configured as per the endpoint's requirements.

- **Authenticate: Start by authenticating with your Bluesky credentials.
- **Choose Endpoint: Select the desired endpoint, such as retrieving a feed or listing notifications.
- **Set Parameters: Provide the required parameters like user IDs, limits, or query strings.
- **Execute Request: Run the request to retrieve data or perform actions within your Power Platform app.

### Example Use Cases

- **Retrieve User Feed: Get posts from a user's timeline or feed to display in your app.
- **Search for Posts: Use a search query to find posts matching user input.
- **Manage Mutes and Blocks: Allow users to manage their mutes and blocks efficiently.
- **Send Notifications: Keep users informed with real-time notifications.
- **Upload Media: Allow users to upload and manage videos or blobs directly.

### Authentication

#### API Key

- **The connector requires an API Key for additional validation in all requests.
- **Header: X-Api-Key
- **Description: The Bluesky API Key is generated from your Bluesky account and must be added during connector setup.

#### Headers

- **Every API request includes the following headers:
- **Authorization: Contains the OAuth 2.0 Bearer token.
- **X-Api-Key: Contains the Bluesky API key.

### Contact

- **[email protected] or [email protected] (original owner)

Loading
Loading