@memberjunction/actions-bizapps-social 2.61.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +4 -0
- package/CHANGELOG.md +16 -0
- package/README.md +375 -0
- package/dist/base/base-social.action.d.ts +137 -0
- package/dist/base/base-social.action.d.ts.map +1 -0
- package/dist/base/base-social.action.js +176 -0
- package/dist/base/base-social.action.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- package/dist/providers/buffer/actions/create-post.action.d.ts +20 -0
- package/dist/providers/buffer/actions/create-post.action.d.ts.map +1 -0
- package/dist/providers/buffer/actions/create-post.action.js +195 -0
- package/dist/providers/buffer/actions/create-post.action.js.map +1 -0
- package/dist/providers/buffer/actions/delete-post.action.d.ts +20 -0
- package/dist/providers/buffer/actions/delete-post.action.d.ts.map +1 -0
- package/dist/providers/buffer/actions/delete-post.action.js +119 -0
- package/dist/providers/buffer/actions/delete-post.action.js.map +1 -0
- package/dist/providers/buffer/actions/get-analytics.action.d.ts +28 -0
- package/dist/providers/buffer/actions/get-analytics.action.d.ts.map +1 -0
- package/dist/providers/buffer/actions/get-analytics.action.js +143 -0
- package/dist/providers/buffer/actions/get-analytics.action.js.map +1 -0
- package/dist/providers/buffer/actions/get-pending-posts.action.d.ts +24 -0
- package/dist/providers/buffer/actions/get-pending-posts.action.d.ts.map +1 -0
- package/dist/providers/buffer/actions/get-pending-posts.action.js +161 -0
- package/dist/providers/buffer/actions/get-pending-posts.action.js.map +1 -0
- package/dist/providers/buffer/actions/get-profiles.action.d.ts +24 -0
- package/dist/providers/buffer/actions/get-profiles.action.d.ts.map +1 -0
- package/dist/providers/buffer/actions/get-profiles.action.js +128 -0
- package/dist/providers/buffer/actions/get-profiles.action.js.map +1 -0
- package/dist/providers/buffer/actions/get-sent-posts.action.d.ts +32 -0
- package/dist/providers/buffer/actions/get-sent-posts.action.d.ts.map +1 -0
- package/dist/providers/buffer/actions/get-sent-posts.action.js +187 -0
- package/dist/providers/buffer/actions/get-sent-posts.action.js.map +1 -0
- package/dist/providers/buffer/actions/index.d.ts +9 -0
- package/dist/providers/buffer/actions/index.d.ts.map +1 -0
- package/dist/providers/buffer/actions/index.js +25 -0
- package/dist/providers/buffer/actions/index.js.map +1 -0
- package/dist/providers/buffer/actions/reorder-queue.action.d.ts +20 -0
- package/dist/providers/buffer/actions/reorder-queue.action.d.ts.map +1 -0
- package/dist/providers/buffer/actions/reorder-queue.action.js +138 -0
- package/dist/providers/buffer/actions/reorder-queue.action.js.map +1 -0
- package/dist/providers/buffer/actions/search-posts.action.d.ts +28 -0
- package/dist/providers/buffer/actions/search-posts.action.d.ts.map +1 -0
- package/dist/providers/buffer/actions/search-posts.action.js +249 -0
- package/dist/providers/buffer/actions/search-posts.action.js.map +1 -0
- package/dist/providers/buffer/buffer-base.action.d.ts +95 -0
- package/dist/providers/buffer/buffer-base.action.d.ts.map +1 -0
- package/dist/providers/buffer/buffer-base.action.js +419 -0
- package/dist/providers/buffer/buffer-base.action.js.map +1 -0
- package/dist/providers/buffer/index.d.ts +3 -0
- package/dist/providers/buffer/index.d.ts.map +1 -0
- package/dist/providers/buffer/index.js +19 -0
- package/dist/providers/buffer/index.js.map +1 -0
- package/dist/providers/facebook/actions/boost-post.action.d.ts +45 -0
- package/dist/providers/facebook/actions/boost-post.action.d.ts.map +1 -0
- package/dist/providers/facebook/actions/boost-post.action.js +340 -0
- package/dist/providers/facebook/actions/boost-post.action.js.map +1 -0
- package/dist/providers/facebook/actions/create-album.action.d.ts +33 -0
- package/dist/providers/facebook/actions/create-album.action.d.ts.map +1 -0
- package/dist/providers/facebook/actions/create-album.action.js +285 -0
- package/dist/providers/facebook/actions/create-album.action.js.map +1 -0
- package/dist/providers/facebook/actions/create-post.action.d.ts +21 -0
- package/dist/providers/facebook/actions/create-post.action.d.ts.map +1 -0
- package/dist/providers/facebook/actions/create-post.action.js +223 -0
- package/dist/providers/facebook/actions/create-post.action.js.map +1 -0
- package/dist/providers/facebook/actions/get-page-insights.action.d.ts +37 -0
- package/dist/providers/facebook/actions/get-page-insights.action.d.ts.map +1 -0
- package/dist/providers/facebook/actions/get-page-insights.action.js +359 -0
- package/dist/providers/facebook/actions/get-page-insights.action.js.map +1 -0
- package/dist/providers/facebook/actions/get-page-posts.action.d.ts +29 -0
- package/dist/providers/facebook/actions/get-page-posts.action.d.ts.map +1 -0
- package/dist/providers/facebook/actions/get-page-posts.action.js +216 -0
- package/dist/providers/facebook/actions/get-page-posts.action.js.map +1 -0
- package/dist/providers/facebook/actions/get-post-insights.action.d.ts +33 -0
- package/dist/providers/facebook/actions/get-post-insights.action.d.ts.map +1 -0
- package/dist/providers/facebook/actions/get-post-insights.action.js +287 -0
- package/dist/providers/facebook/actions/get-post-insights.action.js.map +1 -0
- package/dist/providers/facebook/actions/index.d.ts +10 -0
- package/dist/providers/facebook/actions/index.d.ts.map +1 -0
- package/dist/providers/facebook/actions/index.js +26 -0
- package/dist/providers/facebook/actions/index.js.map +1 -0
- package/dist/providers/facebook/actions/respond-to-comments.action.d.ts +41 -0
- package/dist/providers/facebook/actions/respond-to-comments.action.d.ts.map +1 -0
- package/dist/providers/facebook/actions/respond-to-comments.action.js +328 -0
- package/dist/providers/facebook/actions/respond-to-comments.action.js.map +1 -0
- package/dist/providers/facebook/actions/schedule-post.action.d.ts +29 -0
- package/dist/providers/facebook/actions/schedule-post.action.d.ts.map +1 -0
- package/dist/providers/facebook/actions/schedule-post.action.js +289 -0
- package/dist/providers/facebook/actions/schedule-post.action.js.map +1 -0
- package/dist/providers/facebook/actions/search-posts.action.d.ts +54 -0
- package/dist/providers/facebook/actions/search-posts.action.d.ts.map +1 -0
- package/dist/providers/facebook/actions/search-posts.action.js +396 -0
- package/dist/providers/facebook/actions/search-posts.action.js.map +1 -0
- package/dist/providers/facebook/facebook-base.action.d.ts +230 -0
- package/dist/providers/facebook/facebook-base.action.d.ts.map +1 -0
- package/dist/providers/facebook/facebook-base.action.js +566 -0
- package/dist/providers/facebook/facebook-base.action.js.map +1 -0
- package/dist/providers/facebook/index.d.ts +3 -0
- package/dist/providers/facebook/index.d.ts.map +1 -0
- package/dist/providers/facebook/index.js +19 -0
- package/dist/providers/facebook/index.js.map +1 -0
- package/dist/providers/hootsuite/actions/bulk-schedule-posts.action.d.ts +24 -0
- package/dist/providers/hootsuite/actions/bulk-schedule-posts.action.d.ts.map +1 -0
- package/dist/providers/hootsuite/actions/bulk-schedule-posts.action.js +266 -0
- package/dist/providers/hootsuite/actions/bulk-schedule-posts.action.js.map +1 -0
- package/dist/providers/hootsuite/actions/create-scheduled-post.action.d.ts +25 -0
- package/dist/providers/hootsuite/actions/create-scheduled-post.action.d.ts.map +1 -0
- package/dist/providers/hootsuite/actions/create-scheduled-post.action.js +202 -0
- package/dist/providers/hootsuite/actions/create-scheduled-post.action.js.map +1 -0
- package/dist/providers/hootsuite/actions/delete-scheduled-post.action.d.ts +20 -0
- package/dist/providers/hootsuite/actions/delete-scheduled-post.action.d.ts.map +1 -0
- package/dist/providers/hootsuite/actions/delete-scheduled-post.action.js +172 -0
- package/dist/providers/hootsuite/actions/delete-scheduled-post.action.js.map +1 -0
- package/dist/providers/hootsuite/actions/get-analytics.action.d.ts +52 -0
- package/dist/providers/hootsuite/actions/get-analytics.action.d.ts.map +1 -0
- package/dist/providers/hootsuite/actions/get-analytics.action.js +265 -0
- package/dist/providers/hootsuite/actions/get-analytics.action.js.map +1 -0
- package/dist/providers/hootsuite/actions/get-scheduled-posts.action.d.ts +37 -0
- package/dist/providers/hootsuite/actions/get-scheduled-posts.action.d.ts.map +1 -0
- package/dist/providers/hootsuite/actions/get-scheduled-posts.action.js +208 -0
- package/dist/providers/hootsuite/actions/get-scheduled-posts.action.js.map +1 -0
- package/dist/providers/hootsuite/actions/get-social-profiles.action.d.ts +36 -0
- package/dist/providers/hootsuite/actions/get-social-profiles.action.d.ts.map +1 -0
- package/dist/providers/hootsuite/actions/get-social-profiles.action.js +212 -0
- package/dist/providers/hootsuite/actions/get-social-profiles.action.js.map +1 -0
- package/dist/providers/hootsuite/actions/search-posts.action.d.ts +53 -0
- package/dist/providers/hootsuite/actions/search-posts.action.d.ts.map +1 -0
- package/dist/providers/hootsuite/actions/search-posts.action.js +353 -0
- package/dist/providers/hootsuite/actions/search-posts.action.js.map +1 -0
- package/dist/providers/hootsuite/actions/update-scheduled-post.action.d.ts +20 -0
- package/dist/providers/hootsuite/actions/update-scheduled-post.action.d.ts.map +1 -0
- package/dist/providers/hootsuite/actions/update-scheduled-post.action.js +217 -0
- package/dist/providers/hootsuite/actions/update-scheduled-post.action.js.map +1 -0
- package/dist/providers/hootsuite/hootsuite-base.action.d.ts +101 -0
- package/dist/providers/hootsuite/hootsuite-base.action.d.ts.map +1 -0
- package/dist/providers/hootsuite/hootsuite-base.action.js +274 -0
- package/dist/providers/hootsuite/hootsuite-base.action.js.map +1 -0
- package/dist/providers/hootsuite/index.d.ts +10 -0
- package/dist/providers/hootsuite/index.d.ts.map +1 -0
- package/dist/providers/hootsuite/index.js +28 -0
- package/dist/providers/hootsuite/index.js.map +1 -0
- package/dist/providers/instagram/actions/create-post.action.d.ts +30 -0
- package/dist/providers/instagram/actions/create-post.action.d.ts.map +1 -0
- package/dist/providers/instagram/actions/create-post.action.js +269 -0
- package/dist/providers/instagram/actions/create-post.action.js.map +1 -0
- package/dist/providers/instagram/actions/create-story.action.d.ts +43 -0
- package/dist/providers/instagram/actions/create-story.action.d.ts.map +1 -0
- package/dist/providers/instagram/actions/create-story.action.js +365 -0
- package/dist/providers/instagram/actions/create-story.action.js.map +1 -0
- package/dist/providers/instagram/actions/get-account-insights.action.d.ts +50 -0
- package/dist/providers/instagram/actions/get-account-insights.action.d.ts.map +1 -0
- package/dist/providers/instagram/actions/get-account-insights.action.js +390 -0
- package/dist/providers/instagram/actions/get-account-insights.action.js.map +1 -0
- package/dist/providers/instagram/actions/get-business-posts.action.d.ts +30 -0
- package/dist/providers/instagram/actions/get-business-posts.action.d.ts.map +1 -0
- package/dist/providers/instagram/actions/get-business-posts.action.js +246 -0
- package/dist/providers/instagram/actions/get-business-posts.action.js.map +1 -0
- package/dist/providers/instagram/actions/get-comments.action.d.ts +41 -0
- package/dist/providers/instagram/actions/get-comments.action.d.ts.map +1 -0
- package/dist/providers/instagram/actions/get-comments.action.js +337 -0
- package/dist/providers/instagram/actions/get-comments.action.js.map +1 -0
- package/dist/providers/instagram/actions/get-post-insights.action.d.ts +42 -0
- package/dist/providers/instagram/actions/get-post-insights.action.d.ts.map +1 -0
- package/dist/providers/instagram/actions/get-post-insights.action.js +271 -0
- package/dist/providers/instagram/actions/get-post-insights.action.js.map +1 -0
- package/dist/providers/instagram/actions/index.d.ts +9 -0
- package/dist/providers/instagram/actions/index.d.ts.map +1 -0
- package/dist/providers/instagram/actions/index.js +26 -0
- package/dist/providers/instagram/actions/index.js.map +1 -0
- package/dist/providers/instagram/actions/schedule-post.action.d.ts +34 -0
- package/dist/providers/instagram/actions/schedule-post.action.d.ts.map +1 -0
- package/dist/providers/instagram/actions/schedule-post.action.js +234 -0
- package/dist/providers/instagram/actions/schedule-post.action.js.map +1 -0
- package/dist/providers/instagram/actions/search-posts.action.d.ts +56 -0
- package/dist/providers/instagram/actions/search-posts.action.d.ts.map +1 -0
- package/dist/providers/instagram/actions/search-posts.action.js +479 -0
- package/dist/providers/instagram/actions/search-posts.action.js.map +1 -0
- package/dist/providers/instagram/index.d.ts +3 -0
- package/dist/providers/instagram/index.d.ts.map +1 -0
- package/dist/providers/instagram/index.js +20 -0
- package/dist/providers/instagram/index.js.map +1 -0
- package/dist/providers/instagram/instagram-base.action.d.ts +76 -0
- package/dist/providers/instagram/instagram-base.action.d.ts.map +1 -0
- package/dist/providers/instagram/instagram-base.action.js +362 -0
- package/dist/providers/instagram/instagram-base.action.js.map +1 -0
- package/dist/providers/linkedin/actions/create-article.action.d.ts +28 -0
- package/dist/providers/linkedin/actions/create-article.action.d.ts.map +1 -0
- package/dist/providers/linkedin/actions/create-article.action.js +275 -0
- package/dist/providers/linkedin/actions/create-article.action.js.map +1 -0
- package/dist/providers/linkedin/actions/create-post.action.d.ts +20 -0
- package/dist/providers/linkedin/actions/create-post.action.d.ts.map +1 -0
- package/dist/providers/linkedin/actions/create-post.action.js +188 -0
- package/dist/providers/linkedin/actions/create-post.action.js.map +1 -0
- package/dist/providers/linkedin/actions/get-followers.action.d.ts +29 -0
- package/dist/providers/linkedin/actions/get-followers.action.d.ts.map +1 -0
- package/dist/providers/linkedin/actions/get-followers.action.js +222 -0
- package/dist/providers/linkedin/actions/get-followers.action.js.map +1 -0
- package/dist/providers/linkedin/actions/get-organization-posts.action.d.ts +24 -0
- package/dist/providers/linkedin/actions/get-organization-posts.action.d.ts.map +1 -0
- package/dist/providers/linkedin/actions/get-organization-posts.action.js +163 -0
- package/dist/providers/linkedin/actions/get-organization-posts.action.js.map +1 -0
- package/dist/providers/linkedin/actions/get-personal-posts.action.d.ts +25 -0
- package/dist/providers/linkedin/actions/get-personal-posts.action.d.ts.map +1 -0
- package/dist/providers/linkedin/actions/get-personal-posts.action.js +156 -0
- package/dist/providers/linkedin/actions/get-personal-posts.action.js.map +1 -0
- package/dist/providers/linkedin/actions/get-post-analytics.action.d.ts +28 -0
- package/dist/providers/linkedin/actions/get-post-analytics.action.d.ts.map +1 -0
- package/dist/providers/linkedin/actions/get-post-analytics.action.js +200 -0
- package/dist/providers/linkedin/actions/get-post-analytics.action.js.map +1 -0
- package/dist/providers/linkedin/actions/index.d.ts +9 -0
- package/dist/providers/linkedin/actions/index.d.ts.map +1 -0
- package/dist/providers/linkedin/actions/index.js +25 -0
- package/dist/providers/linkedin/actions/index.js.map +1 -0
- package/dist/providers/linkedin/actions/schedule-post.action.d.ts +22 -0
- package/dist/providers/linkedin/actions/schedule-post.action.d.ts.map +1 -0
- package/dist/providers/linkedin/actions/schedule-post.action.js +205 -0
- package/dist/providers/linkedin/actions/schedule-post.action.js.map +1 -0
- package/dist/providers/linkedin/actions/search-posts.action.d.ts +41 -0
- package/dist/providers/linkedin/actions/search-posts.action.d.ts.map +1 -0
- package/dist/providers/linkedin/actions/search-posts.action.js +292 -0
- package/dist/providers/linkedin/actions/search-posts.action.js.map +1 -0
- package/dist/providers/linkedin/index.d.ts +3 -0
- package/dist/providers/linkedin/index.d.ts.map +1 -0
- package/dist/providers/linkedin/index.js +19 -0
- package/dist/providers/linkedin/index.js.map +1 -0
- package/dist/providers/linkedin/linkedin-base.action.d.ts +166 -0
- package/dist/providers/linkedin/linkedin-base.action.d.ts.map +1 -0
- package/dist/providers/linkedin/linkedin-base.action.js +346 -0
- package/dist/providers/linkedin/linkedin-base.action.js.map +1 -0
- package/dist/providers/tiktok/actions/create-video-post.action.d.ts +21 -0
- package/dist/providers/tiktok/actions/create-video-post.action.d.ts.map +1 -0
- package/dist/providers/tiktok/actions/create-video-post.action.js +226 -0
- package/dist/providers/tiktok/actions/create-video-post.action.js.map +1 -0
- package/dist/providers/tiktok/actions/get-account-analytics.action.d.ts +32 -0
- package/dist/providers/tiktok/actions/get-account-analytics.action.d.ts.map +1 -0
- package/dist/providers/tiktok/actions/get-account-analytics.action.js +242 -0
- package/dist/providers/tiktok/actions/get-account-analytics.action.js.map +1 -0
- package/dist/providers/tiktok/actions/get-comments.action.d.ts +44 -0
- package/dist/providers/tiktok/actions/get-comments.action.d.ts.map +1 -0
- package/dist/providers/tiktok/actions/get-comments.action.js +290 -0
- package/dist/providers/tiktok/actions/get-comments.action.js.map +1 -0
- package/dist/providers/tiktok/actions/get-trending-hashtags.action.d.ts +48 -0
- package/dist/providers/tiktok/actions/get-trending-hashtags.action.d.ts.map +1 -0
- package/dist/providers/tiktok/actions/get-trending-hashtags.action.js +309 -0
- package/dist/providers/tiktok/actions/get-trending-hashtags.action.js.map +1 -0
- package/dist/providers/tiktok/actions/get-user-videos.action.d.ts +20 -0
- package/dist/providers/tiktok/actions/get-user-videos.action.d.ts.map +1 -0
- package/dist/providers/tiktok/actions/get-user-videos.action.js +131 -0
- package/dist/providers/tiktok/actions/get-user-videos.action.js.map +1 -0
- package/dist/providers/tiktok/actions/get-video-analytics.action.d.ts +28 -0
- package/dist/providers/tiktok/actions/get-video-analytics.action.d.ts.map +1 -0
- package/dist/providers/tiktok/actions/get-video-analytics.action.js +198 -0
- package/dist/providers/tiktok/actions/get-video-analytics.action.js.map +1 -0
- package/dist/providers/tiktok/actions/index.d.ts +8 -0
- package/dist/providers/tiktok/actions/index.d.ts.map +1 -0
- package/dist/providers/tiktok/actions/index.js +25 -0
- package/dist/providers/tiktok/actions/index.js.map +1 -0
- package/dist/providers/tiktok/actions/search-videos.action.d.ts +89 -0
- package/dist/providers/tiktok/actions/search-videos.action.d.ts.map +1 -0
- package/dist/providers/tiktok/actions/search-videos.action.js +653 -0
- package/dist/providers/tiktok/actions/search-videos.action.js.map +1 -0
- package/dist/providers/tiktok/index.d.ts +3 -0
- package/dist/providers/tiktok/index.d.ts.map +1 -0
- package/dist/providers/tiktok/index.js +20 -0
- package/dist/providers/tiktok/index.js.map +1 -0
- package/dist/providers/tiktok/tiktok-base.action.d.ts +87 -0
- package/dist/providers/tiktok/tiktok-base.action.d.ts.map +1 -0
- package/dist/providers/tiktok/tiktok-base.action.js +294 -0
- package/dist/providers/tiktok/tiktok-base.action.js.map +1 -0
- package/dist/providers/twitter/actions/create-thread.action.d.ts +28 -0
- package/dist/providers/twitter/actions/create-thread.action.d.ts.map +1 -0
- package/dist/providers/twitter/actions/create-thread.action.js +217 -0
- package/dist/providers/twitter/actions/create-thread.action.js.map +1 -0
- package/dist/providers/twitter/actions/create-tweet.action.d.ts +24 -0
- package/dist/providers/twitter/actions/create-tweet.action.d.ts.map +1 -0
- package/dist/providers/twitter/actions/create-tweet.action.js +199 -0
- package/dist/providers/twitter/actions/create-tweet.action.js.map +1 -0
- package/dist/providers/twitter/actions/delete-tweet.action.d.ts +24 -0
- package/dist/providers/twitter/actions/delete-tweet.action.d.ts.map +1 -0
- package/dist/providers/twitter/actions/delete-tweet.action.js +158 -0
- package/dist/providers/twitter/actions/delete-tweet.action.js.map +1 -0
- package/dist/providers/twitter/actions/get-analytics.action.d.ts +44 -0
- package/dist/providers/twitter/actions/get-analytics.action.d.ts.map +1 -0
- package/dist/providers/twitter/actions/get-analytics.action.js +399 -0
- package/dist/providers/twitter/actions/get-analytics.action.js.map +1 -0
- package/dist/providers/twitter/actions/get-mentions.action.d.ts +24 -0
- package/dist/providers/twitter/actions/get-mentions.action.d.ts.map +1 -0
- package/dist/providers/twitter/actions/get-mentions.action.js +229 -0
- package/dist/providers/twitter/actions/get-mentions.action.js.map +1 -0
- package/dist/providers/twitter/actions/get-timeline.action.d.ts +24 -0
- package/dist/providers/twitter/actions/get-timeline.action.d.ts.map +1 -0
- package/dist/providers/twitter/actions/get-timeline.action.js +249 -0
- package/dist/providers/twitter/actions/get-timeline.action.js.map +1 -0
- package/dist/providers/twitter/actions/index.d.ts +14 -0
- package/dist/providers/twitter/actions/index.d.ts.map +1 -0
- package/dist/providers/twitter/actions/index.js +30 -0
- package/dist/providers/twitter/actions/index.js.map +1 -0
- package/dist/providers/twitter/actions/schedule-tweet.action.d.ts +30 -0
- package/dist/providers/twitter/actions/schedule-tweet.action.d.ts.map +1 -0
- package/dist/providers/twitter/actions/schedule-tweet.action.js +250 -0
- package/dist/providers/twitter/actions/schedule-tweet.action.js.map +1 -0
- package/dist/providers/twitter/actions/search-tweets.action.d.ts +41 -0
- package/dist/providers/twitter/actions/search-tweets.action.d.ts.map +1 -0
- package/dist/providers/twitter/actions/search-tweets.action.js +559 -0
- package/dist/providers/twitter/actions/search-tweets.action.js.map +1 -0
- package/dist/providers/twitter/index.d.ts +8 -0
- package/dist/providers/twitter/index.d.ts.map +1 -0
- package/dist/providers/twitter/index.js +24 -0
- package/dist/providers/twitter/index.js.map +1 -0
- package/dist/providers/twitter/twitter-base.action.d.ts +185 -0
- package/dist/providers/twitter/twitter-base.action.d.ts.map +1 -0
- package/dist/providers/twitter/twitter-base.action.js +484 -0
- package/dist/providers/twitter/twitter-base.action.js.map +1 -0
- package/dist/providers/youtube/actions/create-playlist.action.d.ts +28 -0
- package/dist/providers/youtube/actions/create-playlist.action.d.ts.map +1 -0
- package/dist/providers/youtube/actions/create-playlist.action.js +235 -0
- package/dist/providers/youtube/actions/create-playlist.action.js.map +1 -0
- package/dist/providers/youtube/actions/get-channel-analytics.action.d.ts +60 -0
- package/dist/providers/youtube/actions/get-channel-analytics.action.d.ts.map +1 -0
- package/dist/providers/youtube/actions/get-channel-analytics.action.js +429 -0
- package/dist/providers/youtube/actions/get-channel-analytics.action.js.map +1 -0
- package/dist/providers/youtube/actions/get-channel-videos.action.d.ts +28 -0
- package/dist/providers/youtube/actions/get-channel-videos.action.d.ts.map +1 -0
- package/dist/providers/youtube/actions/get-channel-videos.action.js +263 -0
- package/dist/providers/youtube/actions/get-channel-videos.action.js.map +1 -0
- package/dist/providers/youtube/actions/get-comments.action.d.ts +40 -0
- package/dist/providers/youtube/actions/get-comments.action.d.ts.map +1 -0
- package/dist/providers/youtube/actions/get-comments.action.js +381 -0
- package/dist/providers/youtube/actions/get-comments.action.js.map +1 -0
- package/dist/providers/youtube/actions/get-video-analytics.action.d.ts +48 -0
- package/dist/providers/youtube/actions/get-video-analytics.action.d.ts.map +1 -0
- package/dist/providers/youtube/actions/get-video-analytics.action.js +280 -0
- package/dist/providers/youtube/actions/get-video-analytics.action.js.map +1 -0
- package/dist/providers/youtube/actions/index.d.ts +10 -0
- package/dist/providers/youtube/actions/index.d.ts.map +1 -0
- package/dist/providers/youtube/actions/index.js +26 -0
- package/dist/providers/youtube/actions/index.js.map +1 -0
- package/dist/providers/youtube/actions/schedule-video.action.d.ts +24 -0
- package/dist/providers/youtube/actions/schedule-video.action.d.ts.map +1 -0
- package/dist/providers/youtube/actions/schedule-video.action.js +225 -0
- package/dist/providers/youtube/actions/schedule-video.action.js.map +1 -0
- package/dist/providers/youtube/actions/search-videos.action.d.ts +40 -0
- package/dist/providers/youtube/actions/search-videos.action.d.ts.map +1 -0
- package/dist/providers/youtube/actions/search-videos.action.js +483 -0
- package/dist/providers/youtube/actions/search-videos.action.js.map +1 -0
- package/dist/providers/youtube/actions/update-video-metadata.action.d.ts +32 -0
- package/dist/providers/youtube/actions/update-video-metadata.action.d.ts.map +1 -0
- package/dist/providers/youtube/actions/update-video-metadata.action.js +298 -0
- package/dist/providers/youtube/actions/update-video-metadata.action.js.map +1 -0
- package/dist/providers/youtube/actions/upload-video.action.d.ts +28 -0
- package/dist/providers/youtube/actions/upload-video.action.d.ts.map +1 -0
- package/dist/providers/youtube/actions/upload-video.action.js +266 -0
- package/dist/providers/youtube/actions/upload-video.action.js.map +1 -0
- package/dist/providers/youtube/index.d.ts +3 -0
- package/dist/providers/youtube/index.d.ts.map +1 -0
- package/dist/providers/youtube/index.js +19 -0
- package/dist/providers/youtube/index.js.map +1 -0
- package/dist/providers/youtube/youtube-base.action.d.ts +83 -0
- package/dist/providers/youtube/youtube-base.action.d.ts.map +1 -0
- package/dist/providers/youtube/youtube-base.action.js +319 -0
- package/dist/providers/youtube/youtube-base.action.js.map +1 -0
- package/package.json +42 -0
- package/social_actions_summary.md +439 -0
- package/src/base/base-social.action.ts +270 -0
- package/src/index.ts +26 -0
- package/src/providers/buffer/actions/create-post.action.ts +205 -0
- package/src/providers/buffer/actions/delete-post.action.ts +116 -0
- package/src/providers/buffer/actions/get-analytics.action.ts +146 -0
- package/src/providers/buffer/actions/get-pending-posts.action.ts +161 -0
- package/src/providers/buffer/actions/get-profiles.action.ts +126 -0
- package/src/providers/buffer/actions/get-sent-posts.action.ts +189 -0
- package/src/providers/buffer/actions/index.ts +8 -0
- package/src/providers/buffer/actions/reorder-queue.action.ts +141 -0
- package/src/providers/buffer/actions/search-posts.action.ts +262 -0
- package/src/providers/buffer/buffer-base.action.ts +490 -0
- package/src/providers/buffer/index.ts +2 -0
- package/src/providers/facebook/actions/boost-post.action.ts +412 -0
- package/src/providers/facebook/actions/create-album.action.ts +335 -0
- package/src/providers/facebook/actions/create-post.action.ts +243 -0
- package/src/providers/facebook/actions/get-page-insights.action.ts +427 -0
- package/src/providers/facebook/actions/get-page-posts.action.ts +241 -0
- package/src/providers/facebook/actions/get-post-insights.action.ts +338 -0
- package/src/providers/facebook/actions/index.ts +9 -0
- package/src/providers/facebook/actions/respond-to-comments.action.ts +372 -0
- package/src/providers/facebook/actions/schedule-post.action.ts +310 -0
- package/src/providers/facebook/actions/search-posts.action.ts +449 -0
- package/src/providers/facebook/facebook-base.action.ts +750 -0
- package/src/providers/facebook/index.ts +2 -0
- package/src/providers/hootsuite/actions/bulk-schedule-posts.action.ts +293 -0
- package/src/providers/hootsuite/actions/create-scheduled-post.action.ts +206 -0
- package/src/providers/hootsuite/actions/delete-scheduled-post.action.ts +173 -0
- package/src/providers/hootsuite/actions/get-analytics.action.ts +281 -0
- package/src/providers/hootsuite/actions/get-scheduled-posts.action.ts +220 -0
- package/src/providers/hootsuite/actions/get-social-profiles.action.ts +220 -0
- package/src/providers/hootsuite/actions/search-posts.action.ts +395 -0
- package/src/providers/hootsuite/actions/update-scheduled-post.action.ts +222 -0
- package/src/providers/hootsuite/hootsuite-base.action.ts +346 -0
- package/src/providers/hootsuite/index.ts +12 -0
- package/src/providers/instagram/README.md +129 -0
- package/src/providers/instagram/actions/create-post.action.ts +329 -0
- package/src/providers/instagram/actions/create-story.action.ts +415 -0
- package/src/providers/instagram/actions/get-account-insights.action.ts +449 -0
- package/src/providers/instagram/actions/get-business-posts.action.ts +281 -0
- package/src/providers/instagram/actions/get-comments.action.ts +395 -0
- package/src/providers/instagram/actions/get-post-insights.action.ts +302 -0
- package/src/providers/instagram/actions/index.ts +9 -0
- package/src/providers/instagram/actions/schedule-post.action.ts +248 -0
- package/src/providers/instagram/actions/search-posts.action.ts +569 -0
- package/src/providers/instagram/index.ts +3 -0
- package/src/providers/instagram/instagram-base.action.ts +430 -0
- package/src/providers/linkedin/actions/create-article.action.ts +301 -0
- package/src/providers/linkedin/actions/create-post.action.ts +190 -0
- package/src/providers/linkedin/actions/get-followers.action.ts +226 -0
- package/src/providers/linkedin/actions/get-organization-posts.action.ts +164 -0
- package/src/providers/linkedin/actions/get-personal-posts.action.ts +158 -0
- package/src/providers/linkedin/actions/get-post-analytics.action.ts +205 -0
- package/src/providers/linkedin/actions/index.ts +8 -0
- package/src/providers/linkedin/actions/schedule-post.action.ts +206 -0
- package/src/providers/linkedin/actions/search-posts.action.ts +323 -0
- package/src/providers/linkedin/index.ts +2 -0
- package/src/providers/linkedin/linkedin-base.action.ts +481 -0
- package/src/providers/tiktok/actions/create-video-post.action.ts +234 -0
- package/src/providers/tiktok/actions/get-account-analytics.action.ts +255 -0
- package/src/providers/tiktok/actions/get-comments.action.ts +332 -0
- package/src/providers/tiktok/actions/get-trending-hashtags.action.ts +341 -0
- package/src/providers/tiktok/actions/get-user-videos.action.ts +136 -0
- package/src/providers/tiktok/actions/get-video-analytics.action.ts +218 -0
- package/src/providers/tiktok/actions/index.ts +8 -0
- package/src/providers/tiktok/actions/search-videos.action.ts +717 -0
- package/src/providers/tiktok/index.ts +3 -0
- package/src/providers/tiktok/tiktok-base.action.ts +356 -0
- package/src/providers/twitter/README.md +207 -0
- package/src/providers/twitter/actions/create-thread.action.ts +227 -0
- package/src/providers/twitter/actions/create-tweet.action.ts +204 -0
- package/src/providers/twitter/actions/delete-tweet.action.ts +153 -0
- package/src/providers/twitter/actions/get-analytics.action.ts +440 -0
- package/src/providers/twitter/actions/get-mentions.action.ts +233 -0
- package/src/providers/twitter/actions/get-timeline.action.ts +248 -0
- package/src/providers/twitter/actions/index.ts +14 -0
- package/src/providers/twitter/actions/schedule-tweet.action.ts +259 -0
- package/src/providers/twitter/actions/search-tweets.action.ts +588 -0
- package/src/providers/twitter/index.ts +8 -0
- package/src/providers/twitter/twitter-base.action.ts +629 -0
- package/src/providers/youtube/actions/create-playlist.action.ts +256 -0
- package/src/providers/youtube/actions/get-channel-analytics.action.ts +502 -0
- package/src/providers/youtube/actions/get-channel-videos.action.ts +286 -0
- package/src/providers/youtube/actions/get-comments.action.ts +411 -0
- package/src/providers/youtube/actions/get-video-analytics.action.ts +298 -0
- package/src/providers/youtube/actions/index.ts +9 -0
- package/src/providers/youtube/actions/schedule-video.action.ts +246 -0
- package/src/providers/youtube/actions/search-videos.action.ts +530 -0
- package/src/providers/youtube/actions/update-video-metadata.action.ts +321 -0
- package/src/providers/youtube/actions/upload-video.action.ts +288 -0
- package/src/providers/youtube/index.ts +2 -0
- package/src/providers/youtube/youtube-base.action.ts +373 -0
- package/tsconfig.json +18 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# @memberjunction/actions-bizapps-social
|
|
2
|
+
|
|
3
|
+
## 2.61.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 51b2b47: Improvements to AI Agents and Added Social Actions
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [51b2b47]
|
|
12
|
+
- @memberjunction/actions@2.61.0
|
|
13
|
+
- @memberjunction/actions-base@2.61.0
|
|
14
|
+
- @memberjunction/core@2.61.0
|
|
15
|
+
- @memberjunction/core-entities@2.61.0
|
|
16
|
+
- @memberjunction/global@2.61.0
|
package/README.md
ADDED
|
@@ -0,0 +1,375 @@
|
|
|
1
|
+
# Social Media Actions for MemberJunction
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
This package provides comprehensive social media automation capabilities for MemberJunction, enabling agents and applications to interact with major social media platforms programmatically. The implementation follows MJ's established patterns for BizApps actions while providing platform-specific functionality.
|
|
6
|
+
|
|
7
|
+
## Architecture
|
|
8
|
+
|
|
9
|
+
### Class Hierarchy
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
BaseAction (from @memberjunction/actions)
|
|
13
|
+
└── BaseOAuthAction (from @memberjunction/actions/Engine/src/generic)
|
|
14
|
+
└── BaseSocialMediaAction (base for all social actions)
|
|
15
|
+
├── BaseHootSuiteAction
|
|
16
|
+
├── BaseBufferAction
|
|
17
|
+
├── BaseLinkedInAction
|
|
18
|
+
├── BaseTwitterAction
|
|
19
|
+
├── BaseFacebookAction
|
|
20
|
+
├── BaseInstagramAction
|
|
21
|
+
├── BaseTikTokAction
|
|
22
|
+
└── BaseYouTubeAction
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### Authentication
|
|
26
|
+
|
|
27
|
+
All social media platforms use OAuth 2.0 authentication. Credentials are stored in the MemberJunction CompanyIntegration table with the following structure:
|
|
28
|
+
|
|
29
|
+
- **Integration Entity**: Defines the platform (e.g., "Twitter", "LinkedIn")
|
|
30
|
+
- **CompanyIntegration Entity**: Stores company-specific credentials
|
|
31
|
+
- `AccessToken`: OAuth access token
|
|
32
|
+
- `RefreshToken`: OAuth refresh token (where applicable)
|
|
33
|
+
- `ExpirationDate`: Token expiration timestamp
|
|
34
|
+
- `CustomAttribute1-5`: Platform-specific data (e.g., account IDs)
|
|
35
|
+
|
|
36
|
+
The `BaseOAuthAction` class provides:
|
|
37
|
+
- Token retrieval from CompanyIntegration
|
|
38
|
+
- Automatic token refresh when expired
|
|
39
|
+
- OAuth flow helpers
|
|
40
|
+
- Standard error handling for auth failures
|
|
41
|
+
|
|
42
|
+
## Package Structure
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
packages/Actions/BizApps/Social/
|
|
46
|
+
├── README.md (this file)
|
|
47
|
+
├── package.json
|
|
48
|
+
├── tsconfig.json
|
|
49
|
+
├── src/
|
|
50
|
+
│ ├── index.ts
|
|
51
|
+
│ ├── base/
|
|
52
|
+
│ │ └── base-social.action.ts
|
|
53
|
+
│ └── providers/
|
|
54
|
+
│ ├── hootsuite/
|
|
55
|
+
│ │ ├── hootsuite-base.action.ts
|
|
56
|
+
│ │ └── actions/
|
|
57
|
+
│ │ ├── get-scheduled-posts.action.ts
|
|
58
|
+
│ │ ├── create-scheduled-post.action.ts
|
|
59
|
+
│ │ ├── get-analytics.action.ts
|
|
60
|
+
│ │ ├── get-social-profiles.action.ts
|
|
61
|
+
│ │ ├── update-scheduled-post.action.ts
|
|
62
|
+
│ │ ├── delete-scheduled-post.action.ts
|
|
63
|
+
│ │ ├── bulk-schedule-posts.action.ts
|
|
64
|
+
│ │ └── search-posts.action.ts
|
|
65
|
+
│ ├── buffer/
|
|
66
|
+
│ │ ├── buffer-base.action.ts
|
|
67
|
+
│ │ └── actions/
|
|
68
|
+
│ │ ├── get-profiles.action.ts
|
|
69
|
+
│ │ ├── create-post.action.ts
|
|
70
|
+
│ │ ├── get-pending-posts.action.ts
|
|
71
|
+
│ │ ├── get-sent-posts.action.ts
|
|
72
|
+
│ │ ├── get-analytics.action.ts
|
|
73
|
+
│ │ ├── reorder-queue.action.ts
|
|
74
|
+
│ │ ├── delete-post.action.ts
|
|
75
|
+
│ │ └── search-posts.action.ts
|
|
76
|
+
│ ├── linkedin/
|
|
77
|
+
│ │ ├── linkedin-base.action.ts
|
|
78
|
+
│ │ └── actions/
|
|
79
|
+
│ │ ├── create-post.action.ts
|
|
80
|
+
│ │ ├── get-organization-posts.action.ts
|
|
81
|
+
│ │ ├── get-personal-posts.action.ts
|
|
82
|
+
│ │ ├── get-post-analytics.action.ts
|
|
83
|
+
│ │ ├── schedule-post.action.ts
|
|
84
|
+
│ │ ├── get-followers.action.ts
|
|
85
|
+
│ │ ├── create-article.action.ts
|
|
86
|
+
│ │ └── search-posts.action.ts
|
|
87
|
+
│ ├── twitter/
|
|
88
|
+
│ │ ├── twitter-base.action.ts
|
|
89
|
+
│ │ └── actions/
|
|
90
|
+
│ │ ├── create-tweet.action.ts
|
|
91
|
+
│ │ ├── create-thread.action.ts
|
|
92
|
+
│ │ ├── get-timeline.action.ts
|
|
93
|
+
│ │ ├── get-mentions.action.ts
|
|
94
|
+
│ │ ├── get-analytics.action.ts
|
|
95
|
+
│ │ ├── schedule-tweet.action.ts
|
|
96
|
+
│ │ ├── delete-tweet.action.ts
|
|
97
|
+
│ │ └── search-tweets.action.ts
|
|
98
|
+
│ ├── facebook/
|
|
99
|
+
│ │ ├── facebook-base.action.ts
|
|
100
|
+
│ │ └── actions/
|
|
101
|
+
│ │ ├── create-post.action.ts
|
|
102
|
+
│ │ ├── get-page-posts.action.ts
|
|
103
|
+
│ │ ├── get-post-insights.action.ts
|
|
104
|
+
│ │ ├── schedule-post.action.ts
|
|
105
|
+
│ │ ├── create-album.action.ts
|
|
106
|
+
│ │ ├── get-page-insights.action.ts
|
|
107
|
+
│ │ ├── respond-to-comments.action.ts
|
|
108
|
+
│ │ ├── boost-post.action.ts
|
|
109
|
+
│ │ └── search-posts.action.ts
|
|
110
|
+
│ ├── instagram/
|
|
111
|
+
│ │ ├── instagram-base.action.ts
|
|
112
|
+
│ │ └── actions/
|
|
113
|
+
│ │ ├── create-post.action.ts
|
|
114
|
+
│ │ ├── get-business-posts.action.ts
|
|
115
|
+
│ │ ├── get-post-insights.action.ts
|
|
116
|
+
│ │ ├── get-account-insights.action.ts
|
|
117
|
+
│ │ ├── schedule-post.action.ts
|
|
118
|
+
│ │ ├── get-comments.action.ts
|
|
119
|
+
│ │ ├── create-story.action.ts
|
|
120
|
+
│ │ └── search-posts.action.ts
|
|
121
|
+
│ ├── tiktok/
|
|
122
|
+
│ │ ├── tiktok-base.action.ts
|
|
123
|
+
│ │ └── actions/
|
|
124
|
+
│ │ ├── get-user-videos.action.ts
|
|
125
|
+
│ │ ├── get-video-analytics.action.ts
|
|
126
|
+
│ │ ├── get-account-analytics.action.ts
|
|
127
|
+
│ │ ├── create-video-post.action.ts
|
|
128
|
+
│ │ ├── get-comments.action.ts
|
|
129
|
+
│ │ ├── get-trending-hashtags.action.ts
|
|
130
|
+
│ │ └── search-videos.action.ts
|
|
131
|
+
│ └── youtube/
|
|
132
|
+
│ ├── youtube-base.action.ts
|
|
133
|
+
│ └── actions/
|
|
134
|
+
│ ├── upload-video.action.ts
|
|
135
|
+
│ ├── get-channel-videos.action.ts
|
|
136
|
+
│ ├── get-video-analytics.action.ts
|
|
137
|
+
│ ├── update-video-metadata.action.ts
|
|
138
|
+
│ ├── create-playlist.action.ts
|
|
139
|
+
│ ├── schedule-video.action.ts
|
|
140
|
+
│ ├── get-comments.action.ts
|
|
141
|
+
│ ├── get-channel-analytics.action.ts
|
|
142
|
+
│ └── search-videos.action.ts
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
## Common Features
|
|
146
|
+
|
|
147
|
+
### BaseSocialMediaAction
|
|
148
|
+
|
|
149
|
+
Provides common functionality for all social platforms:
|
|
150
|
+
|
|
151
|
+
```typescript
|
|
152
|
+
export abstract class BaseSocialMediaAction extends BaseOAuthAction {
|
|
153
|
+
// Common parameters for all social actions
|
|
154
|
+
protected get commonParams(): ActionParam[] {
|
|
155
|
+
return [
|
|
156
|
+
{ Name: 'CompanyIntegrationID', Type: 'guid', Required: true, Description: 'Company integration identifier' },
|
|
157
|
+
{ Name: 'ProfileID', Type: 'string', Required: false, Description: 'Social profile/account ID' }
|
|
158
|
+
];
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// Analytics normalization
|
|
162
|
+
protected normalizeAnalytics(platformData: any): SocialAnalytics {
|
|
163
|
+
// Convert platform-specific metrics to common format
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
// Media handling
|
|
167
|
+
protected async uploadMedia(files: MediaFile[]): Promise<string[]> {
|
|
168
|
+
// Handle media uploads with size/format validation
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
// Rate limiting
|
|
172
|
+
protected async handleRateLimit(retryAfter: number): Promise<void> {
|
|
173
|
+
// Intelligent rate limit handling
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
// Historical post search
|
|
177
|
+
protected abstract searchPosts(params: SearchParams): Promise<SocialPost[]>;
|
|
178
|
+
}
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### Common Interfaces
|
|
182
|
+
|
|
183
|
+
```typescript
|
|
184
|
+
interface SocialPost {
|
|
185
|
+
id: string;
|
|
186
|
+
platform: string;
|
|
187
|
+
profileId: string;
|
|
188
|
+
content: string;
|
|
189
|
+
mediaUrls: string[];
|
|
190
|
+
publishedAt: Date;
|
|
191
|
+
scheduledFor?: Date;
|
|
192
|
+
analytics?: SocialAnalytics;
|
|
193
|
+
platformSpecificData: Record<string, any>;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
interface SocialAnalytics {
|
|
197
|
+
impressions: number;
|
|
198
|
+
engagements: number;
|
|
199
|
+
clicks: number;
|
|
200
|
+
shares: number;
|
|
201
|
+
comments: number;
|
|
202
|
+
likes: number;
|
|
203
|
+
reach: number;
|
|
204
|
+
saves?: number;
|
|
205
|
+
videoViews?: number;
|
|
206
|
+
platformMetrics: Record<string, any>;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
interface SearchParams {
|
|
210
|
+
query?: string;
|
|
211
|
+
hashtags?: string[];
|
|
212
|
+
startDate?: Date;
|
|
213
|
+
endDate?: Date;
|
|
214
|
+
limit?: number;
|
|
215
|
+
offset?: number;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
interface MediaFile {
|
|
219
|
+
filename: string;
|
|
220
|
+
mimeType: string;
|
|
221
|
+
data: Buffer | string; // Base64 or buffer
|
|
222
|
+
size: number;
|
|
223
|
+
}
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
## Platform-Specific Implementation Details
|
|
227
|
+
|
|
228
|
+
### HootSuite
|
|
229
|
+
- **API Version**: v1
|
|
230
|
+
- **Rate Limits**: 250 requests per hour
|
|
231
|
+
- **Special Features**: Multi-platform posting, team collaboration
|
|
232
|
+
- **Search Capabilities**: Full text search across connected accounts
|
|
233
|
+
|
|
234
|
+
### Buffer
|
|
235
|
+
- **API Version**: v1
|
|
236
|
+
- **Rate Limits**: 600 requests per hour
|
|
237
|
+
- **Special Features**: Optimal timing suggestions, queue management
|
|
238
|
+
- **Search Capabilities**: Search within scheduled and sent posts
|
|
239
|
+
|
|
240
|
+
### LinkedIn
|
|
241
|
+
- **API Version**: v2 (LinkedIn Marketing Developer Platform)
|
|
242
|
+
- **Rate Limits**: Application-level and member-level limits
|
|
243
|
+
- **Special Features**: Organization vs personal posts, article publishing
|
|
244
|
+
- **Search Capabilities**: Search organization posts, limited personal post search
|
|
245
|
+
|
|
246
|
+
### Twitter/X
|
|
247
|
+
- **API Version**: v2
|
|
248
|
+
- **Rate Limits**: Varies by endpoint (15-900 requests per 15 min)
|
|
249
|
+
- **Special Features**: Thread creation, advanced search operators
|
|
250
|
+
- **Search Capabilities**: Full Twitter search API with operators
|
|
251
|
+
|
|
252
|
+
### Facebook
|
|
253
|
+
- **API Version**: Graph API v18.0
|
|
254
|
+
- **Rate Limits**: 200 calls per hour per user
|
|
255
|
+
- **Special Features**: Page vs profile posts, boost capabilities
|
|
256
|
+
- **Search Capabilities**: Search within page posts, limited by privacy
|
|
257
|
+
|
|
258
|
+
### Instagram
|
|
259
|
+
- **API Version**: Instagram Basic Display API + Graph API
|
|
260
|
+
- **Rate Limits**: 200 calls per hour per user
|
|
261
|
+
- **Special Features**: Stories, reels, shopping tags
|
|
262
|
+
- **Search Capabilities**: Business account posts only
|
|
263
|
+
|
|
264
|
+
### TikTok
|
|
265
|
+
- **API Version**: Display API v2
|
|
266
|
+
- **Rate Limits**: 1000 requests per day
|
|
267
|
+
- **Special Features**: Video only, trending discovery
|
|
268
|
+
- **Search Capabilities**: Limited to user's own videos
|
|
269
|
+
|
|
270
|
+
### YouTube
|
|
271
|
+
- **API Version**: Data API v3
|
|
272
|
+
- **Rate Limits**: 10,000 quota units per day
|
|
273
|
+
- **Special Features**: Video management, playlists, premieres
|
|
274
|
+
- **Search Capabilities**: Full channel video search with filters
|
|
275
|
+
|
|
276
|
+
## Error Handling
|
|
277
|
+
|
|
278
|
+
All actions implement comprehensive error handling:
|
|
279
|
+
|
|
280
|
+
```typescript
|
|
281
|
+
enum SocialMediaErrorCode {
|
|
282
|
+
RATE_LIMIT_EXCEEDED = 'RATE_LIMIT',
|
|
283
|
+
INVALID_TOKEN = 'INVALID_TOKEN',
|
|
284
|
+
TOKEN_EXPIRED = 'TOKEN_EXPIRED',
|
|
285
|
+
PLATFORM_ERROR = 'PLATFORM_ERROR',
|
|
286
|
+
INVALID_MEDIA = 'INVALID_MEDIA',
|
|
287
|
+
POST_NOT_FOUND = 'POST_NOT_FOUND',
|
|
288
|
+
INSUFFICIENT_PERMISSIONS = 'INSUFFICIENT_PERMISSIONS'
|
|
289
|
+
}
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
## Usage Examples
|
|
293
|
+
|
|
294
|
+
### Creating a Post
|
|
295
|
+
```typescript
|
|
296
|
+
const action = new CreatePostAction();
|
|
297
|
+
await action.RunAction({
|
|
298
|
+
CompanyIntegrationID: 'abc-123',
|
|
299
|
+
ProfileID: 'page-456',
|
|
300
|
+
Content: 'Check out our new product!',
|
|
301
|
+
MediaFiles: [{
|
|
302
|
+
filename: 'product.jpg',
|
|
303
|
+
mimeType: 'image/jpeg',
|
|
304
|
+
data: base64Data,
|
|
305
|
+
size: 1024000
|
|
306
|
+
}],
|
|
307
|
+
ScheduledTime: '2024-01-15T10:00:00Z'
|
|
308
|
+
});
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
### Searching Historical Posts
|
|
312
|
+
```typescript
|
|
313
|
+
const action = new SearchPostsAction();
|
|
314
|
+
const result = await action.RunAction({
|
|
315
|
+
CompanyIntegrationID: 'abc-123',
|
|
316
|
+
Query: 'product launch',
|
|
317
|
+
StartDate: '2023-01-01',
|
|
318
|
+
EndDate: '2023-12-31',
|
|
319
|
+
Limit: 100
|
|
320
|
+
});
|
|
321
|
+
|
|
322
|
+
// Analyze content patterns
|
|
323
|
+
const posts = result.Result as SocialPost[];
|
|
324
|
+
const contentPatterns = analyzePostContent(posts);
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
### Getting Analytics
|
|
328
|
+
```typescript
|
|
329
|
+
const action = new GetPostAnalyticsAction();
|
|
330
|
+
const result = await action.RunAction({
|
|
331
|
+
CompanyIntegrationID: 'abc-123',
|
|
332
|
+
PostID: 'post-789',
|
|
333
|
+
MetricTypes: ['impressions', 'engagements', 'clicks']
|
|
334
|
+
});
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
## Development Guidelines
|
|
338
|
+
|
|
339
|
+
1. **Credential Storage**: Always use CompanyIntegration for OAuth tokens
|
|
340
|
+
2. **Rate Limiting**: Implement exponential backoff for rate limit errors
|
|
341
|
+
3. **Media Handling**: Validate media size/format before upload
|
|
342
|
+
4. **Error Messages**: Provide clear, actionable error messages
|
|
343
|
+
5. **Logging**: Log all API requests for debugging
|
|
344
|
+
6. **Testing**: Mock API responses for unit tests
|
|
345
|
+
|
|
346
|
+
## Testing
|
|
347
|
+
|
|
348
|
+
Each platform should have:
|
|
349
|
+
- Unit tests for action logic
|
|
350
|
+
- Integration tests with mock API responses
|
|
351
|
+
- Manual testing checklist for OAuth flow
|
|
352
|
+
- Performance tests for bulk operations
|
|
353
|
+
|
|
354
|
+
## Future Enhancements
|
|
355
|
+
|
|
356
|
+
1. **Webhook Support**: Real-time notifications for comments/mentions
|
|
357
|
+
2. **Batch Operations**: Bulk post creation/scheduling
|
|
358
|
+
3. **AI Integration**: Content suggestions based on historical performance
|
|
359
|
+
4. **Cross-Platform Analytics**: Unified dashboard across all platforms
|
|
360
|
+
5. **Content Calendar**: Visual planning interface
|
|
361
|
+
|
|
362
|
+
## Contributing
|
|
363
|
+
|
|
364
|
+
When adding new actions:
|
|
365
|
+
1. Extend the appropriate base class
|
|
366
|
+
2. Implement all required parameters
|
|
367
|
+
3. Add comprehensive error handling
|
|
368
|
+
4. Include search functionality where available
|
|
369
|
+
5. Update metadata files
|
|
370
|
+
6. Add unit tests
|
|
371
|
+
7. Document any platform-specific quirks
|
|
372
|
+
|
|
373
|
+
## License
|
|
374
|
+
|
|
375
|
+
See MemberJunction main license.
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
import { BaseOAuthAction } from '@memberjunction/actions';
|
|
4
|
+
import { ActionParam } from '@memberjunction/actions-base';
|
|
5
|
+
/**
|
|
6
|
+
* Common interfaces for social media actions
|
|
7
|
+
*/
|
|
8
|
+
export interface SocialPost {
|
|
9
|
+
id: string;
|
|
10
|
+
platform: string;
|
|
11
|
+
profileId: string;
|
|
12
|
+
content: string;
|
|
13
|
+
mediaUrls: string[];
|
|
14
|
+
publishedAt: Date;
|
|
15
|
+
scheduledFor?: Date;
|
|
16
|
+
analytics?: SocialAnalytics;
|
|
17
|
+
platformSpecificData: Record<string, any>;
|
|
18
|
+
}
|
|
19
|
+
export interface SocialAnalytics {
|
|
20
|
+
impressions: number;
|
|
21
|
+
engagements: number;
|
|
22
|
+
clicks: number;
|
|
23
|
+
shares: number;
|
|
24
|
+
comments: number;
|
|
25
|
+
likes: number;
|
|
26
|
+
reach: number;
|
|
27
|
+
saves?: number;
|
|
28
|
+
videoViews?: number;
|
|
29
|
+
platformMetrics: Record<string, any>;
|
|
30
|
+
}
|
|
31
|
+
export interface SearchParams {
|
|
32
|
+
query?: string;
|
|
33
|
+
hashtags?: string[];
|
|
34
|
+
startDate?: Date;
|
|
35
|
+
endDate?: Date;
|
|
36
|
+
limit?: number;
|
|
37
|
+
offset?: number;
|
|
38
|
+
}
|
|
39
|
+
export interface MediaFile {
|
|
40
|
+
filename: string;
|
|
41
|
+
mimeType: string;
|
|
42
|
+
data: Buffer | string;
|
|
43
|
+
size: number;
|
|
44
|
+
}
|
|
45
|
+
export declare enum SocialMediaErrorCode {
|
|
46
|
+
RATE_LIMIT_EXCEEDED = "RATE_LIMIT",
|
|
47
|
+
INVALID_TOKEN = "INVALID_TOKEN",
|
|
48
|
+
TOKEN_EXPIRED = "TOKEN_EXPIRED",
|
|
49
|
+
PLATFORM_ERROR = "PLATFORM_ERROR",
|
|
50
|
+
INVALID_MEDIA = "INVALID_MEDIA",
|
|
51
|
+
POST_NOT_FOUND = "POST_NOT_FOUND",
|
|
52
|
+
INSUFFICIENT_PERMISSIONS = "INSUFFICIENT_PERMISSIONS"
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Base class for all social media actions.
|
|
56
|
+
* Provides common functionality for authentication, media handling,
|
|
57
|
+
* analytics normalization, and rate limiting.
|
|
58
|
+
*/
|
|
59
|
+
export declare abstract class BaseSocialMediaAction extends BaseOAuthAction {
|
|
60
|
+
/**
|
|
61
|
+
* Common parameters for all social media actions
|
|
62
|
+
*/
|
|
63
|
+
protected get commonSocialParams(): ActionParam[];
|
|
64
|
+
/**
|
|
65
|
+
* Get the platform name (e.g., 'Twitter', 'LinkedIn')
|
|
66
|
+
*/
|
|
67
|
+
protected abstract get platformName(): string;
|
|
68
|
+
/**
|
|
69
|
+
* Get the API base URL for the platform
|
|
70
|
+
*/
|
|
71
|
+
protected abstract get apiBaseUrl(): string;
|
|
72
|
+
/**
|
|
73
|
+
* Normalize platform-specific analytics to common format
|
|
74
|
+
*/
|
|
75
|
+
protected normalizeAnalytics(platformData: any): SocialAnalytics;
|
|
76
|
+
/**
|
|
77
|
+
* Upload media files to the platform
|
|
78
|
+
*/
|
|
79
|
+
protected uploadMedia(files: MediaFile[]): Promise<string[]>;
|
|
80
|
+
/**
|
|
81
|
+
* Platform-specific media upload implementation
|
|
82
|
+
*/
|
|
83
|
+
protected abstract uploadSingleMedia(file: MediaFile): Promise<string>;
|
|
84
|
+
/**
|
|
85
|
+
* Validate media file meets platform requirements
|
|
86
|
+
*/
|
|
87
|
+
protected validateMediaFile(file: MediaFile): void;
|
|
88
|
+
/**
|
|
89
|
+
* Handle rate limiting with exponential backoff
|
|
90
|
+
*/
|
|
91
|
+
protected handleRateLimit(retryAfter?: number): Promise<void>;
|
|
92
|
+
/**
|
|
93
|
+
* Search for posts on the platform
|
|
94
|
+
*/
|
|
95
|
+
protected abstract searchPosts(params: SearchParams): Promise<SocialPost[]>;
|
|
96
|
+
/**
|
|
97
|
+
* Convert platform-specific post data to common format
|
|
98
|
+
*/
|
|
99
|
+
protected abstract normalizePost(platformPost: any): SocialPost;
|
|
100
|
+
/**
|
|
101
|
+
* Parse rate limit headers from API response
|
|
102
|
+
*/
|
|
103
|
+
protected parseRateLimitHeaders(headers: any): {
|
|
104
|
+
remaining: number;
|
|
105
|
+
reset: Date;
|
|
106
|
+
limit: number;
|
|
107
|
+
} | null;
|
|
108
|
+
/**
|
|
109
|
+
* Build common API headers including authentication
|
|
110
|
+
*/
|
|
111
|
+
protected buildHeaders(additionalHeaders?: Record<string, string>): Record<string, string>;
|
|
112
|
+
/**
|
|
113
|
+
* Format date for API requests (ISO 8601)
|
|
114
|
+
*/
|
|
115
|
+
protected formatDate(date: Date | string): string;
|
|
116
|
+
/**
|
|
117
|
+
* Parse date from API response
|
|
118
|
+
*/
|
|
119
|
+
protected parseDate(dateString: string): Date;
|
|
120
|
+
/**
|
|
121
|
+
* Get profile ID from parameters or default from integration
|
|
122
|
+
*/
|
|
123
|
+
protected getProfileId(params: any): string;
|
|
124
|
+
/**
|
|
125
|
+
* Log API request for debugging
|
|
126
|
+
*/
|
|
127
|
+
protected logApiRequest(method: string, url: string, data?: any): void;
|
|
128
|
+
/**
|
|
129
|
+
* Log API response for debugging
|
|
130
|
+
*/
|
|
131
|
+
protected logApiResponse(response: any): void;
|
|
132
|
+
/**
|
|
133
|
+
* Helper to get parameter value from params array
|
|
134
|
+
*/
|
|
135
|
+
protected getParamValue(params: ActionParam[], paramName: string): any;
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=base-social.action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-social.action.d.ts","sourceRoot":"","sources":["../../src/base/base-social.action.ts"],"names":[],"mappings":"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"}
|