Thứ Ba, 24 tháng 9, 2019

Google.GData.Blogger.dll

https://www.codeproject.com/Articles/421895/Blog-integration-into-ASP-NET-website-using-GData

Incede.blogger.Project

Google.GData.Blogger.dll

Google.GData.Client

Incede.blogger.TestProject


1.ADDING GDATA LIBS DEPENDENCIES

UnRar libs on C:\Libs\ for example.
Create a New C# Project >> Go to Solution Explorer >> Right-Click on Project >> Add >> Reference…
google api libs gdata
Now go to Browse >> Click Browse Button >> Go to C:\Libs\Google API\Samples and select:
"Google.GData.Photos.dll" "ExecRequest" "Google.GData.Blogger.dll" "Google.GData.Client.DLL" "Google.GData.Extensions.dll" >> Add
google api dependencies blogger
Now you have to add to your code:
1
2
3
4
using Google.GData.Blogger;
using Google.GData.Client;
using Google.GData.Photos;
using Google.GData.Extensions;
And that’s all with libs, now let’s post something…

2.HOW TO POST TO BLOGSPOT

A simple kind of post looks like:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
CheckForIllegalCrossThreadCalls = false;
Service service = new Service("blogger", "googleAPIshittyName");
service.Credentials = new GDataCredentials("yourGoogleUsername@gmail.com", "yourGooglePassword");
GDataGAuthRequestFactory factory = (GDataGAuthRequestFactory)service.RequestFactory;
factory.AccountType = "GOOGLE";
AtomEntry post = new AtomEntry();
post.Title.Text = "YourPostTitle";
post.Content = new AtomContent();
post.Content.Content = "Post Body, Descrption...";
post.Content.Type = "xhtml";
string tags = "tag1,tag2,tag3";
string[] tagsS = tags.Split(',');
foreach(string tag in tagsS)
{
    AtomCategory cat = new AtomCategory();
    cat.Scheme = new Uri("http://www.blogger.com/atom/ns#");
    cat.Term = tag;
    post.Categories.Add(cat);
}
post.IsDraft = false;
Uri blogFeedUri = new Uri("http://www.blogger.com/feeds/" + "yourBlogspotID" + "/posts/default");
AtomEntry createdEntry = null;
try
{
    createdEntry = service.Insert(blogFeedUri, post);
    MessageBox.Show("Done!");
}
catch (GDataRequestException exception)
{
    if (exception.ResponseString == "Blog has exceeded rate limit or otherwise requires word verification for new posts")
        MessageBox.Show("Blog has exceeded rate limit or otherwise requires word verification for new posts");
}
if (createdEntry == null)
    MessageBox.Show("Something went wrong, atricle was not published...\nCheck all html tags...");
And you can upload an image to google in this way:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public string uploadImageToGoogle(string path, string username, string password, string blogId)
{
    if (!System.IO.File.Exists(path))
        return "Error! Image file not found";
    ///////////////////////token session and shits...///////////
    PicasaService service = new PicasaService("HowToFix.PRO");
    service.setUserCredentials(username, password);
    /////////////////cdefault album is dropBox or something////
    Uri postUri = new Uri(PicasaQuery.CreatePicasaUri(username));
    System.IO.FileInfo fileInfo = new System.IO.FileInfo(path);
    System.IO.FileStream fileStream = fileInfo.OpenRead();
    PicasaEntry entry = (PicasaEntry)service.Insert(postUri, fileStream, "image/png", "nameOfYourFile");
    fileStream.Close();
    PhotoAccessor ac = new PhotoAccessor(entry);
    string contentUrl = entry.Media.Content.Attributes["url"] as string;
    return contentUrl;
}
Th function to upload image to google will return direct link to your image which you will use in your post like:
<img src="returnedString" />
*blogId: You can take it from Blogger. Login to blogger >> Go to Desired Blog and link looks like:
https://www.blogger.com/blogger.g?blogID=5004180000000060001
I think you understand where the BlogID is…

3.OR…DIRECTLY A FUNCTION TO POST TO BLOGSPOT, OR TWO…

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
public void sendPostToBlogspot(string blogId, string username, string password, string title, string postBody, string tags)
{
    CheckForIllegalCrossThreadCalls = false;
    Service service = new Service("blogger", "googleAPIshittyName");
    service.Credentials = new GDataCredentials(username, password);
    GDataGAuthRequestFactory factory = (GDataGAuthRequestFactory)service.RequestFactory;
    factory.AccountType = "GOOGLE";
    /////////////////////////////////////////////////////////////
    if (postBody.Contains("[IMGLINK]"))
    {
        postBody = postBody.Replace("[IMGLINK]", uploadImageToGoogle("image.png", username, password, blogId));
    }
    ///////post////////////////////////////////
    AtomEntry post = new AtomEntry();
    post.Title.Text = title;
    post.Content = new AtomContent();
    post.Content.Content = postBody;
    post.Content.Type = "xhtml";
    int length = 0;
    //make sure that tags are not too long
    string[] tagsS = tags.Split(',');
    foreach (string label in tagsS)
    {
        length = length + label.Count();
        if (length > 198)
        {
            string label2 = label.Substring(0, 199);
            AtomCategory cat = new AtomCategory();
            cat.Scheme = new Uri("http://www.blogger.com/atom/ns#");
            cat.Term = label2;
            post.Categories.Add(cat);
            this.maskedTextBox5.Text = this.maskedTextBox5.Text + label2 + ",";
            break;
        }
        else
        {
            AtomCategory cat = new AtomCategory();
            cat.Scheme = new Uri("http://www.blogger.com/atom/ns#");
            cat.Term = label;
            post.Categories.Add(cat);
        }
    }
    post.IsDraft = false;
    ///////////////publishing post/_/_/_/_/_/_\_|_/_)_(_--> () - {} - [] 0_o
    Uri blogFeedUri = new Uri("http://www.blogger.com/feeds/" + blogId + "/posts/default");
    AtomEntry createdEntry = null;
    try
    {
        createdEntry = service.Insert(blogFeedUri, post);
        MessageBox.Show("Done!");
    }
    catch (GDataRequestException exception)
    {
        if (exception.ResponseString == "Blog has exceeded rate limit or otherwise requires word verification for new posts")
            MessageBox.Show("Blog has exceeded rate limit or otherwise requires word verification for new posts");
    }
    if (createdEntry == null)
        MessageBox.Show("Something went wrong, atricle was not published...\nCheck all html tags...");
    }
public string uploadImageToGoogle(string path, string username, string password, string blogId)
{
    if (!System.IO.File.Exists(path))
        return "Error! Image file not found";
    ///////////////////////token session and shits...///////////
    PicasaService service = new PicasaService("HowToFixPRO");
    service.setUserCredentials(username, password);
    /////////////////cdefault album is dropBox or something////
    Uri postUri = new Uri(PicasaQuery.CreatePicasaUri(username));
    System.IO.FileInfo fileInfo = new System.IO.FileInfo(path);
    System.IO.FileStream fileStream = fileInfo.OpenRead();
    PicasaEntry entry = (PicasaEntry)service.Insert(postUri, fileStream, "image/png", "nameOfYourFile");
    fileStream.Close();
    PhotoAccessor ac = new PhotoAccessor(entry);
    string contentUrl = entry.Media.Content.Attributes["url"] as string;
    return contentUrl;
}
If you have images in your post you have to make sure that post will look like:
<img src="[IMGLINK]" /> vwhere [IMGLINK] will e replaced with image link which you have selected path for.

3.A LITTLE C# APPLICATION WHICH WILL POST TO BLOGSPOT:

google api post to blogspot net application
You can download C# Post to Blogspot using Google API project here.
You had to have libs on C:\Libs\ and this folder with libs C:\Libs\Google API\Samples

5.CONCLUSIONS

You can find more about Google API on Google GData Developers Forums like creating albums and others but I think these examples are a good point to start.
Please comment if worked for you or not and why not if yes :))