2013-01-10 34 views
1

我想旗後的ID作爲工作討論通過OAuth PUT:LinkedIn標誌作爲工作 - PHP

$post_id = "G-34343-example"; 
$cmd = "http://api.linkedin.com/v1/posts/{$post_id}/category/code"; 
$xml = "<?xml version='1.0' encoding='UTF-8'?><code>job</code>"; 
$this->oauthc->fetch($cmd, $xml, OAUTH_HTTP_METHOD_PUT, array("Content-Type" => "application/xml")); 

但我發現了一個錯誤:

有人知道這是什麼意思?

com.linkedin.common.leo.core.UnauthorizedActionException: Unauthorized change of forum type 
+0

感謝信息。 – Nimi

回答

1

是您使用授權標誌的職位目標羣體的API連接用戶?您是否嘗試以該用戶身份登錄LinkedIn,轉到目標論壇並試圖標記帖子?

+0

是的。用戶被授權並可以手動標記爲作業。 – Nimi

+0

並且您授權的用戶授予了[rw_groups](http://developer.linkedin.com/documents/authentication)權限? –

+0

是的。我張貼分組討論成功(但不能標記它)。 – Nimi

3

的問題就在這裏:

<?php 
$post id = "G-34343-example"; 
?> 

有變量名的空間。使用下劃線而不是空格來使其工作。

(此:$cmd = "http://api.linkedin.com/v1/posts/{$post_id}/category/code";將包含一個空白點,其中的帖子ID應該是。)

+0

哦,你應該從這個PHP的錯誤。檢查你的錯誤報告設置。 – Sherlock

+0

對不起,這是一個錯字。我發佈的錯誤仍然存​​在。 – Nimi

+0

你有更多的建議嗎? – Nimi

1

當創建一個組後,它的URL在「位置」標頭中返回。出於某種原因,位置標頭中的網址使用http而不是https。

如果您使用的OAuth2,LinkedIn,如果你試圖用http來代替htttps訪問API返回401。因此,如果您收到401響應,請檢查您是否使用了https。

因此,代碼應該是這樣的:

$url = $response->headers['location'] . '/category/code'; 
$url = str_replace('http://', 'https://', $post_url); 
// ...