2011-06-27 90 views
2

我有通過LinkedIn的API用戶進行身份驗證的應用程序:我如何通過linkedin api發送消息/通知?

  • 有可能是應用程序發送消息給誰授權的所有用戶? (即:應用程序的系統通知)

  • 是否可以嚮應用程序用戶的子集發送消息? (即:黃金會員等,你可以認爲我是在什麼地方存儲所有LinkedIn的ID)

我一直在尋找了一段時間,並不能發現什麼/

回答

0

唯一的消息支持通過API是通過Messaging API,它只允許消息從一個連接發送到另一個......所以理論上,你(如你在開發人員,而不是應用程序本身,因爲它沒有連接)可以發送一個消息給您的任何應用程序用戶,您也碰巧以某種方式連接到該應用程序。雖然消息必須由特定動作觸發,但收件人的最大數量爲10,但Messaging API非常明確。

所以簡短的回答是不可能的,儘管上述可能有點解決方法。另一種方法是直接向用戶詢問他們的電子郵件地址,一旦他們完成了LI流程,然後您可以根據需要直接聯繫他們,而無需運行API限制/限制。

2

像這樣的事情

function message($subject, $body, $recipients) 
{ 
    if (!is_array($recipients)) { 
     throw new Exception('Recipients must be suplied as an array'); 
    } 

    // Start document 
    $xml = new DOMDocument('1.0', 'utf-8'); 

    // Create element for recipients and add each recipient as a node 
    $elemRecipients = $xml->createElement('recipients'); 
    foreach ($recipients as $recipient) { 
     // Create person node 

     $person = $xml->createElement('person'); 
     $person->setAttribute('path', '/people/' . (string) $recipient); 

     // Create recipient node 
     $elemRecipient = $xml->createElement('recipient'); 
     $elemRecipient->appendChild($person); 

     // Add recipient to recipients node 
     $elemRecipients->appendChild($elemRecipient); 

    } 


    // Create mailbox node and add recipients, body and subject 
    $elemMailbox = $xml->createElement('mailbox-item'); 
    $elemMailbox->appendChild($elemRecipients); 
    $elemMailbox->appendChild($xml->createElement('body', ($body))); 
    $elemMailbox->appendChild($xml->createElement('subject', ($subject))); 

    // Append parent node to document 
    $xml->appendChild($elemMailbox); 

    $response = fetch('POST','/v1/people/~/mailbox', $xml->saveXML()); 

    return ($response); 
} 


function fetch($method, $resource, $body = '') { 
    $params = array('oauth2_access_token' => $_SESSION['access_token'], 
     'format' => 'json', 
    ); 

    // Need to use HTTPS 
    $url = 'https://api.linkedin.com' . $resource . '?' . http_build_query($params); 
    // Tell streams to make a (GET, POST, PUT, or DELETE) request 


    $context = stream_context_create(
     array('http' => 
      array('method' => $method, 

       'header'=> "Content-Type:text/xml\r\n" 
        . "Content-Length: " . strlen($body) . "\r\n", 
       'content' => ($body) 
      ) 
     ) 
    ); 


    // Hocus Pocus 
    $fp = fopen($url, 'r', false, $context); 
    $response = file_get_contents($url, false, $context); 
    $result =json_decode($response,true); 

    return $result;} 
message('Subject', 'body', array('id')); 

功能從Code Sample

+0

取什麼$收件人數組應該包含?用戶ID?我有點困惑。 – kammy

+0

是的。這是linkedin用戶ID(ID數組)。 – Knase