Team Ai
Apppublic

Coding-With-Raptor/Likendin-Agent

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes
linkedin_posts.py73 linesDownload Raw Back to tools
1from agents import function_tool2import requests3from dotenv import find_dotenv, load_dotenv4import os5 6 7# # Constants8LINKEDIN_ACCESS_TOKEN = os.getenv("LINKEDIN_ACCESS_TOKEN")9 10load_dotenv(find_dotenv())11 12HEADERS = {13    "Authorization": f"Bearer {LINKEDIN_ACCESS_TOKEN}",14    "Content-Type": "application/json",15}16 17 18def get_user_id():19    """20    Retrieve LinkedIn user profile information using the /userinfo endpoint.21 22    Returns:23        dict: User profile information or None if an error occurs.24    """25    url = "https://api.linkedin.com/v2/userinfo"26 27    try:28        response = requests.get(url, headers=HEADERS)29        response.raise_for_status()30        return response.json()31    except requests.exceptions.RequestException as e:32        print(f"Error fetching user info: {e}")33        return None34 35 36# @traceable37@function_tool38def post_content_linkedin(content: str):39    """40    Share content on LinkedIn.41 42    Args:43        params (RunContextWrapper[PostContentParams]): Parameters for the post.44 45    Returns:46        dict: API response or None if an error occurs.47    """48    user_info = get_user_id()49    if not user_info:50        print("Failed to retrieve user information.")51        return None52 53    author_urn = f"urn:li:person:{user_info['sub']}"54    url = "https://api.linkedin.com/v2/ugcPosts"55    payload = {56        "author": author_urn,57        "lifecycleState": "PUBLISHED",58        "specificContent": {59            "com.linkedin.ugc.ShareContent": {60                "shareCommentary": {"text": content},61                "shareMediaCategory": "NONE",62            }63        },64        "visibility": {"com.linkedin.ugc.MemberNetworkVisibility": "PUBLIC"},65    }66 67    try:68        response = requests.post(url, headers=HEADERS, json=payload)69        response.raise_for_status()70        return response.json()71    except requests.exceptions.RequestException as e:72        print(f"Error posting content: {e}")73        return None