编辑通过LinkedIn API共享内容
作为LinkedIn Campaign Manager的用户,我能够在UI中更新以下内容:编辑通过LinkedIn API共享内容,linkedin,linkedin-api,Linkedin,Linkedin Api,作为LinkedIn Campaign Manager的用户,我能够在UI中更新以下内容: 广告名称 介绍性案文 目标URL 在该份额内: 广告形象 标题, 描述 根据你的文件。使用您的沙盒帐户并尝试上面链接的示例请求,我得到了一个非常奇怪的错误: “com.linkedin.restli.client.RestLiResponseException:响应状态400,serviceErrorMessage:com.linkedin.publishing.util.common.Respo
- 广告名称
- 介绍性案文
- 目标URL
- 广告形象
- 标题,
- 描述
“com.linkedin.restli.client.RestLiResponseException:响应状态400,serviceErrorMessage:com.linkedin.publishing.util.common.ResponseException:不允许编辑和WLed参数以外的属性。”
我找不到任何信息。
它允许我发布共享,但不能编辑它们
另一个问题是LinkedIn API不返回草稿创意。有没有办法下载/更新草稿
该服务正在ASP.NET MVC5上运行
代码:
public类EditASingleShareService:IEditASingleShareService
{
公共异步任务EditASingleSharesTextAsync(ShareEditUserView共享,长共享\u id)
{
ShareEditRequest shareEditRequestModel=初始化ShareRequestObject(共享);
使用(var httpClient=new httpClient())
{
StaticMethods.AuthorizeToken(httpClient);
var reqUrl=$“{ConfigurationManager.AppSettings[“ShareEndPoint”]}/urn:li:share:{share_id}”;
ByteArrayContent byteContent=StaticMethods.CreateByteArrayContent(shareEditRequestModel);
var response=wait httpClient.PostAsync(请求URL,字节内容);
response.EnsureSuccessStatusCode();
return$“正确的状态代码是204。实际响应:{response.ToString()}”;
}
}
私有静态ShareEditRequest初始化ShareRequestObject(ShareEditUserView共享)
{
var shareEditRequestModel=新的ShareEditRequest()
{
补丁=新补丁()
{
集合=新集合()
{
text=新文本()
{
注释=新列表()
}
}
}
};
shareEditRequestModel.patch.set.text.text=share.text;
返回shareEditRequestModel;
}
}
公共静态无效授权令牌(HttpClient HttpClient)
{
字符串accessTkn=ConfigurationManager.AppSettings[“AuthToken”];
httpClient.DefaultRequestHeaders.Authorization=新的AuthenticationHeaderValue(“承载人”,accessTkn);
}
公共静态ByteArrayContent CreateByteArrayContent(对象AnyTypeOfObject)
{
var myContent=JsonConvert.SerializeObject(anytypeofaabject);
var buffer=Encoding.UTF8.GetBytes(myContent);
var byteContent=新的ByteArrayContent(缓冲区);
byteContent.Headers.ContentType=新的MediaTypeHeaderValue(“应用程序/json”);
返回字节内容;
}
型号:
public class ShareEditRequest
{
public Patch patch { get; set; }
}
public class Text
{
public List<object> annotations { get; set; }
public string text { get; set; }
}
public class Set
{
public Text text { get; set; }
}
public class Patch
{
[JsonProperty("$set")]
public Set set { get; set; }
}
}
public class ShareEditUserView
{
public string Text { get; set; }
}
公共类ShareEditRequest
{
公共修补程序修补程序{get;set;}
}
公共类文本
{
公共列表注释{get;set;}
公共字符串文本{get;set;}
}
公共类集
{
公共文本文本{get;set;}
}
公共类补丁
{
[JsonProperty(“$set”)]
公共集集{get;Set;}
}
}
公共类ShareEditUserView
{
公共字符串文本{get;set;}
}
控制器:
/// <summary>
/// Edit a single shares text (only editable field).
/// </summary>
/// <param name="share">Share user view.</param>
/// <param name="share_id">ID of the share</param>
/// <returns>Response code</returns>
[HttpPost]
public async Task<string> EditASingleShareAsync(ShareEditUserView share, long share_id)
{
return await editShare.EditASingleSharesTextAsync(share, share_id);
}
//
///编辑单个共享文本(仅可编辑字段)。
///
///共享用户视图。
///股票的ID
///响应代码
[HttpPost]
公共异步任务EditASingleShareAsync(ShareEditUserView共享,长共享\u id)
{
返回wait wait editShare.EditASingleSharesTextAsync(共享,共享id);
}
Web配置:
<appSettings>
<add key="CampaignEndPoint" value="https://api.linkedin.com/v2/adCampaignsV2" />
<add key="CreativeEndPoint" value="https://api.linkedin.com/v2/adCreativesV2" />
<add key="ShareEndPoint" value="https://api.linkedin.com/v2/shares" />
</appSettings>
你有没有找到解决问题的方法?嘿@sorenhk,恐怕我没有。LinkedIn的支持在这方面也没有太大帮助。我认为这是值得与他们联系的,因为如果他们对这个问题有更多的疑问,或者至少在这个问题上更新他们的文档,他们可能会尽早确定优先顺序。。。