Я хочу поделиться с моим приложением C # MVC на портале LinkedIn без входа в систему. Пожалуйста, ведите меня.
У меня есть таблица, в которой я выбираю несколько строк и публикую сообщения в LinkedIn. Я создал приложение и проверил его. Я генерирую токен из Javascript и вход в приложение. После этого я отправляю токен доступа и сообщаю контроллеру вызов AJAX.
<a id="linkedin-button" class="btn btn-block btn-social btn-linkedin">
<i class="fa fa-linkedin" aria-hidden="true"></i> Sign in with Linkedin
</a>
//var accessCode = '';
$('#linkedin-button').on('click', function() {
//Initialize with your OAuth.io app public key
OAuth.initialize('txp2rKYpuKZXaaYC5kB-m13KnVE');
// Use popup for oauth
OAuth.popup('linkedin2').then(linkedin => {
console.log('linkedin:', linkedin);
// Prompts 'welcome' message with User's email on successful login
// #me() is a convenient method to retrieve user data without requiring you
// to know which OAuth provider url to call
linkedin.me().then(data => {
console.log('me data:', data);
alert('Linkedin says your email is:' + data.email + ".\nView browser 'Console Log' for more details");
})
// Retrieves user data from OAuth provider by using #get() and
// OAuth provider url
linkedin.get('/v2/me').then(data => {
console.log('self data:', data);
});
var accessCode = linkedin.access_token;
alert(accessCode);
ShareLinkedIn(accessCode);
});
});
function ShareLinkedIn(accessCode) {
var code = accessCode;
var state = 'sfdsfdsfsf';
$.ajax({
url: '@Url.Action("PostLinkedInNetworkUpdate", "Home")',
data: {
accessToken: code,
title: state
},
async: true,
type: 'POST',
cache: false,
success: function(response) {
alert(response);
}
});
}
private string linkedinSharesEndPoint = (https: //api.linkedin.com/v1/people/~/shares?oauth2_access_token={0});
private const string defaultUrl = "some-url";
private const string defaultImageUrl = "some-image-url";
public bool PostLinkedInNetworkUpdate(string accessToken, string title, string submittedUrl = defaultUrl, string submittedImageUrl = defaultImageUrl)
{
var requestUrl = String.Format(linkedinSharesEndPoint, accessToken);
var message = new
{
comment = "Testing out the LinkedIn Share API with JSON",
content = new Dictionary<string, string> {
{ "title", title },
{ "submitted-url", submittedUrl },
{ "submitted-image-url", submittedImageUrl }
}, visibility = new
{
code = "anyone"
}
};
var requestJson = new JavaScriptSerializer().Serialize(message);
var client = new WebClient();
var requestHeaders = new NameValueCollection{{"Content-Type", "application/json"}, {"x-li-format", "json"}};
client.Headers.Add(requestHeaders);
var responseJson = client.UploadString(requestUrl, "POST", requestJson);
var response = new JavaScriptSerializer().Deserialize<Dictionary<string, object>>(responseJson);
return response.ContainsKey("updateKey");
}