Đăng bài lên blogspot bằng google gdata api
https://c-sharp-asp-snippets.blogspot.com/2015/03/posting-to-blogspot-using-google-gdata.html?view=flipcard
https://c-sharp-asp-snippets.blogspot.com/?view=flipcard
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách sử dụng Google GData API để đăng lên Blogspot / Blog Blogger từ google bằng Ứng dụng C # hoặc .Net . Bạn cũng sẽ thấy cách tải hình ảnh lên google bằng API và đính kèm nó vào bài đăng trên blog và cách thêm thẻ trực tiếp từ Ứng dụng C # của bạn.
Trước hết, bạn phải tải xuống Google_Data_API tại đây hoặc tải trực tiếp các lib mà tôi đã sử dụng trong hướng dẫn này tại đây .
Ok, sau khi bạn đã tải xuống Google API Libs, hãy bắt đầu.
1. CÁC KHOẢN PHỤ TÙNG GDATA LIBS
Chẳng hạn libs trên C: \ Libs \ chẳng hạn.
Tạo dự án C # mới >> Chuyển đến Solution Explorer >> Nhấp chuột phải vào Dự án >> Thêm >> Tham khảo
Bây giờ, hãy đi tới Duyệt >> Nhấp vào Duyệt nút >> Chuyển đến C: \ Libs \ Google API \ Samples và chọn:
"Google.GData.Photos.dll" "ExecRequest" "Google.GData.Blogger.dll" "Google.GData.Client.DLL" "Google.GData.Extensions.dll" >> Thêm
Bây giờ bạn phải thêm vào mã của bạn:
1
2
3
4
using Google.GData.Blogger;
using Google.GData.Client;
using Google.GData.Photos;
using Google.GData.Extensions;
Và đó là tất cả với libs, bây giờ hãy đăng một cái gì đó
"Google.GData.Photos.dll" "ExecRequest" "Google.GData.Blogger.dll" "Google.GData.Client.DLL" "Google.GData.Extensions.dll" >> Thêm
1
2
3
4
| using Google.GData.Blogger;using Google.GData.Client;using Google.GData.Photos;using Google.GData.Extensions; |
2. CÁCH ĐĂNG KÝ ĐẾN BLOGSPOT
Một loại bài đăng đơn giản trông giống như:
1
2
3
4
5
6
7
số 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.Term = tag;
post.Categories.Add(cat);
}
post.IsDraft = false;
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...");
Và bạn có thể tải lên một hình ảnh lên google theo cách này:
1
2
3
4
5
6
7
số 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;
}
Chức năng tải hình ảnh lên google sẽ trả về liên kết trực tiếp đến hình ảnh của bạn mà bạn sẽ sử dụng trong bài đăng của mình như:
<img src="returnedString" />
* blogId : Bạn có thể lấy nó từ Blogger. Đăng nhập vào blogger >> Truy cập Blog mong muốn và liên kết giống như: Tôi nghĩ bạn hiểu BlogID ở đâu
https://www.blogger.com/blogger.g?blogID=5004180000000060001
1
2
3
4
5
6
7
số 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.Term = tag; post.Categories.Add(cat);}post.IsDraft = false;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..."); |
1
2
3
4
5
6
7
số 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;} |
<img src="returnedString" />https://www.blogger.com/blogger.g?blogID=50041800000000600013.OR GAY TRỰC TIẾP MỘT CHỨC NĂNG ĐĂNG KÝ ĐẾN BLOGSPOT, HOẶC HAI
1
2
3
4
5
6
7
số 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.Term = label2;
post.Categories.Add(cat);
this.maskedTextBox5.Text = this.maskedTextBox5.Text + label2 + ",";
break;
}
else
{
AtomCategory cat = new AtomCategory();
cat.Term = label;
post.Categories.Add(cat);
}
}
post.IsDraft = false;
///////////////publishing post/_/_/_/_/_/_\_|_/_)_(_--> () - {} - [] 0_o
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;
}
Nếu bạn có hình ảnh trong bài đăng của mình, bạn phải đảm bảo rằng bài đăng đó sẽ giống như:
<img src="[IMGLINK]" /> vwhere [IMGLINK] sẽ được thay thế bằng liên kết hình ảnh mà bạn đã chọn đường dẫn.
1
2
3
4
5
6
7
số 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.Term = label2; post.Categories.Add(cat); this.maskedTextBox5.Text = this.maskedTextBox5.Text + label2 + ","; break; } else { AtomCategory cat = new AtomCategory(); cat.Term = label; post.Categories.Add(cat); } } post.IsDraft = false; ///////////////publishing post/_/_/_/_/_/_\_|_/_)_(_--> () - {} - [] 0_o 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;} |
<img src="[IMGLINK]" /> vwhere [IMGLINK] sẽ được thay thế bằng liên kết hình ảnh mà bạn đã chọn đường dẫn.3.A LITTLE C # ỨNG DỤNG MÀ SAU BÀI ĐĂNG CHO BLOGSPOT:
Bạn có thể tải C # Post lên Blogspot bằng dự án Google API tại đây.
Bạn phải có libs C:\Libs\ và thư mục này với libs C:\Libs\Google API\Samples
C:\Libs\ và thư mục này với libs C:\Libs\Google API\Samples












