TCS54321 Ответов: 1

Проблема с загрузкой изображения в linkedin.


я использую последнее решение этого поста для загрузки изображения на LinkedIn

вот мой код:-

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Web;
using System.Web.Script.Serialization;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace LI
{
public partial class WebForm3 : System.Web.UI.Page
{

    public string redirectUrl = "http://localhost:64576/WebForm3";
    public string TokenGlobe = ""; 
    public String apiKey = "API_KEY";
    public string retval = "";
    public String apiSecret = "API_Secret";

    protected void Page_Load(object sender, EventArgs e)
    {

        if (!Page.IsPostBack)
        {
            if (Request.QueryString["code"] != null)
            {
                VerifyAuthentication(Request.QueryString["code"]);
            }
        }
    }

    protected void btnTwit_Click(object sender, EventArgs e)
    {
        var Address = "https://www.linkedin.com/oauth/v2/authorization?response_type=code&client_id=" + apiKey + "&redirect_uri=http://localhost:64576/WebForm3&state=987654321&scope=w_share";

        using (var webClient = new WebClient())
        {
            webClient.Headers.Add("x-li-format", "json");

        }
        Response.Redirect(Address);
    }
    public String VerifyAuthentication(string code)
    {
        string authUrl = "https://www.linkedin.com/oauth/v2/accessToken";

        var sign1 = "grant_type=authorization_code&code=" + code + "&redirect_uri=" + redirectUrl + "&client_id=" + apiKey + "&client_secret=" + apiSecret + "";
        var sign = "grant_type=authorization_code&code=" + HttpUtility.UrlEncode(code) + "&redirect_uri=" + HttpUtility.HtmlEncode(redirectUrl) + "&client_id=" + apiKey + "&client_secret=" + apiSecret;



        HttpWebRequest webRequest = System.Net.WebRequest.Create(authUrl + "?" + sign) as HttpWebRequest;
        webRequest.Method = "POST";
        webRequest.Host = "www.linkedin.com";
        webRequest.ContentType = "application/x-www-form-urlencoded";

        Stream dataStream = webRequest.GetRequestStream();

        String postData = String.Empty;
        byte[] postArray = Encoding.ASCII.GetBytes(postData);

        dataStream.Write(postArray, 0, postArray.Length);
        dataStream.Close();

        WebResponse response = webRequest.GetResponse();
        dataStream = response.GetResponseStream();


        StreamReader responseReader = new StreamReader(dataStream);
        String returnVal = responseReader.ReadToEnd().ToString();
        responseReader.Close();
        dataStream.Close();
        response.Close();
        var stri = redirectUrl;
        retval = returnVal.ToString();
        var objects = JsonConvert.DeserializeObject<Accountdsdsd>(retval);//JArray.Parse(retval);
        TokenGlobe = objects.access_token;
        var SentStatus = PostLinkedInNetworkUpdate(TokenGlobe, "Hello API"); //Share

        return TokenGlobe;


        // return responseReader.ReadToEnd().ToString();
    }


    private string linkedinSharesEndPoint = "https://api.linkedin.com//v1/people/~/shares?oauth2_access_token={0}&format=json";
    private const string defaultUrl = "http://localhost:64576/WebForm3";
    private const string defaultImageUrl = "http://opusleads.com/opusing/technology/technology%20(1).jpg"; //Image To Post

    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");
    }

}

//Json Parsing
public class Accountdsdsd
{
    public string access_token { get; set; }
    public string expires_in { get; set; }
}
} 


вот я использую онлайн ссылку на изображение:
private const string defaultImageUrl = "http://opusleads.com/opusing/technology/technology%20(1).jpg"; //Image To Post


но когда я пытаюсь загрузить образ локального диска с помощью кнопки fileupload. это не работает на меня.

Что я уже пробовал:

<pre>   string imagePath = string.Empty;
        if (FileUpload1.HasFile)
        {
            string fileName = System.IO.Path.GetFileName(FileUpload1.FileName);
            imagePath = Server.MapPath("~/Images/" + fileName);
            FileUpload1.SaveAs(imagePath) ;
        }

        Session["ImagePath"] = imagePath;


это не работает для меня ... может ли кто-нибудь предложить мне решение?

1 Ответов

Рейтинг:
0

OriginalGriff

Вернитесь туда, откуда вы взяли код, и спросите там - они будут гораздо лучше знакомы с кодом, что он должен делать и как он это делает, чем мы.

Не могли бы Вы спросить Sony, как устранить проблему с вашим Xbox?


TCS54321

потому что я доверяю Xbox больше, чем Sony.