2012-01-18 141 views
1

我正在尝试使用我的linkedin api应用程序发布帖子,与我的应用程序的问题是我无法在群组墙上发表任何帖子...即使我能够发表评论任何群组的帖子,但无法发布任何新帖子。Linkedin API使用PHP

我已授权访问第三方做一个职位,但一些如何,我无法做出群组墙的一个新的岗位.....

以下是我的代码,以使在组的后Wals .....它被执行时没有任何错误......任何人都可以帮我解决这个问题吗?

function setGroupPost($status) {   
    $status_url = $this->base_url . "v1/groups/676767/posts"; 
    $xml = "<post><title>" . htmlspecialchars($status['title'], ENT_NOQUOTES, "UTF-8") . "</title><summary>".htmlspecialchars($status['description'], ENT_NOQUOTES, "UTF-8")."</summary></post>";  
    $request = OAuthRequest::from_consumer_and_token($this->consumer, $this->access_token, "POST", $status_url); 

    $request->sign_request($this->signature_method, $this->consumer, $this->access_token); 
    $auth_header = $request->to_header("https://api.linkedin.com"); 
    /*if ($debug) { 
     echo $auth_header . "\n"; 
    } */ 
    $response = $this->httpRequest($status_url, $auth_header, "POST", $xml); 
    return $response; 
    } 
+0

Groups API仅适用于当前登录的成员。可能是这种情况..? – 2012-01-18 10:46:45

+0

我认为它不是因为我的应用程序得到运行后登录用户批准 – 2012-01-18 11:01:59

回答

1

我很好奇的状态是在服务器响应什么。在任何情况下,我能发表的帖子中的一组使用我的Python代码 - 这里是对HTTP流量跟踪:

URL: 
http://api.linkedin.com/v1/groups/4058745/posts 

Request Headers: 
user-agent: Python-httplib2/0.7.0 (gzip) 
Host: api.linkedin.com 
accept-encoding: gzip, deflate 
content-type: text/xml 
Content-Length: 64 
authorization: OAuth realm="http://api.linkedin.com", oauth_body_hash="FWbw5dO9thxZvF2L2gMq8d6CTwM%3D", oauth_nonce="14208603", oauth_timestamp="1326913388", oauth_consumer_key="1iK9RUZ1FLJaLUpp90xztjhJXLkdTooiNqXMAORUrpoWJaR0cozd863qyIwvb0ZJ", oauth_signature_method="HMAC-SHA1", oauth_version="1.0", oauth_token="3df261cb-0532-4015-8618-01b0a41cd45e", oauth_signature="Rwv%2BNdFpJuBzoXWSmyYwIT%2FiiC8%3D" 

Request body: 
<post><title>Test group post</title><summary> </summary></post> 

思考:也许你的内容类型设置不正确(必须是文字/ XML)?你能检查HTTP Response的状态吗?一般来说,如果它不是“201创建的”,那么就存在一个问题,并且代码本身可以为您提供有关错误发生的指导。

+0

我检查了状态显示我200 OK – 2012-01-19 03:45:06

+0

200 OK听起来像你实际上发送GET而不是你可以观看HTTP流量吗?如果你使用的是Macintosh,你可以使用HTTPScoop来做到这一点(你需要从https切换到http),如果你使用PC,你可以使用Fiddler。成功写入LinkedIn API将返回一个201,而不是200. – 2012-01-19 18:25:55

+0

OAuthrealm =“linkedin.com”,oauth_version =“1.0”,oauth_nonce =“cfaa01a68bb6affa2c463aff3e6dbbcf”,oauth_timestamp =“1328013867”,oauth_consumer_key =“qqiqyu34efp”,oauth_signature_method =“HMAC-SHA1”,oauth_signature =“Kw0yIMf7lULGQKw6PAsOgQfR5nM%3D”在我的http头文件中获得以上详细信息 – 2012-01-31 13:02:55

0

尝试更换:

 

$auth_header = $request->to_header("https://api.linkedin.com"); 
// WITH 
$auth_header = $request->to_header("https://www.linkedin.com"); 
 

希望它为你工作

+0

nope ....它不工作:( – 2012-01-18 11:21:34