не знаю что уже и делать, отправляются сообщения либо не форматированный текст, либо вообще не отправляются
1. в таком виде, пост нормально отображается
2. А в таком не выходит
А такой текст вообще не постится:
весь код:
1. в таком виде, пост нормально отображается
Код:
response:= send ('GET','https://api.vk.com/method/wall.post?owner_id=ИД_пользователя&message='+UrlEncode(AnsiToUTF8('Салат "Лисичка"'+#10#13+''+#10#13+'Ингредиенты:'+#10#13+'2 филе куриной грудки'+#10#13+'3 маринованных огурца'+#10#13+'200 гр. корейской моркови'+#10#13+'200 гр. сыра'+#10#13+'2 зубчика чеснока'+#10#13+'майонез'+#10#13+'зелень'+#10#13+''+#10#13+'Приготовление:'+#10#13+'1. Филе отвариваем в подсоленной воде,затем нарезаем полосочками (или разбираем руками на волокна).'+#10#13+'2. Огурцы также нарезаем полосочками,сыр на крупной терке.'+#10#13+'3. Смешиваем филе.сыр,огурцы и морковь,добавляем выдавленный через пресс чеснок и заправляем майонезом.'))+'&access_token='+token);
2. А в таком не выходит
Код:
response:= send ('GET','https://api.vk.com/method/wall.post?owner_id=ИД_пользователя&message='+UrlEncode(AnsiToUTF8(Edit3.Text))+'&access_token='+token);
А такой текст вообще не постится:
Вкуснейшее универсальное заварное тесто для вареников, пельменей, чебуреков...'+#10#13+''+#10#13+'Это не тесто, а просто песня! Нежное, эластичное, податливое, приятное в работе и очень вкусное! Что пельмени, что вареники или чебуреки всегда с ним получаются просто изумительные. А еще из него можно приготовить вкуснейшие манты, позы, пироги и слоеные лепешки.'+#10#13+''+#10#13+'Ингредиенты:'+#10#13+'-1 яйцо'+#10#13+'-соль'+#10#13+'-3 стакана муки'+#10#13+'-1 ст.л. растительного масла'+#10#13+'-1 стакан кипятка'+#10#13+''+#10#13+'Приготовление:'+#10#13+'К яйцу добавляем соль и взбиваем вилкой.'+#10#13+'Затем добавляем 3 стакана муки и 1 ложку растительного масла.'+#10#13+'Хорошенько перемешиваем и добавляем 1 стакан кипятка (не бойтесь, клея не будет)'+#10#13+'Вымешиваем ложкой.'+#10#13+'А потом замешиваем руками (если необходимо, добавляем немного муки)'+#10#13+''+#10#13+'Тесто на минералке для пельменей и вареников.'+#10#13+''+#10#13+'Ингредиенты:'+#10#13+'-1 стакан минеральной газированной воды,'+#10#13+'-1 яйцо,'+#10#13+'-0,5 чайной ложки соли,'+#10#13+'-0,5 чайной ложки сахара,'+#10#13+'-4 столовые ложки масла растительного,'+#10#13+'-мука (сколько войдет).'+#10#13+''+#10#13+'Приготовление:'+#10#13+'В миске соедините все составляющие, кроме муки. Муку подсыпайте постепенно. Замесите мягкое эластичное тесто. Оно должно получиться блестящим и не должно прилипать к рукам и столу.'+#10#13+'Лепим вареники или пельмени. Это тесто можно варить, тушить и даже печь. Оно подойдет и для чебуреков, но тогда в тесто не добавляйте яйцо.'+#10#13+''+#10#13+'Заварное тесто, просто супер.'+#10#13+''+#10#13+'Ингредиенты:'+#10#13+'-1 ст.воды'+#10#13+'-50 г.сливочного масла'+#10#13+'-щепотка соли'+#10#13+'-2 яйца'+#10#13+'-3 ст.муки'+#10#13+''+#10#13+'Приготовление:'+#10#13+'1)В кастрюлю налить воду,добавить соль,сливочное масло.(вода должна закипеть,масло растворится)'+#10#13+'2)В кипящую воду добавить 1 ст. муки(быстро перемешать)'+#10#13+'3)Вбить по одному яйца(я мешала ложкой,затем руками,масса была не горячая,а тёплая)'+#10#13+'4)Всыпать муку и замесить тесто.(лучше конечно по одному стакану)'+#10#13+'5)Тесту дать 30 минуток отдохнуть(я накрыла пищевой плёнкой)'+#10#13+'6)Тесто получается очень мягкое,эластичное.Была приятно с ним работать!!!!'+#10#13+'Более того очень удачный вариант,подходит и на пельмени и вареники.Приготовила тесто утром,а вечером готовила вареники и пельмени(тесто в холодильнике,накрыто пищевой плёнкой).Так как я решила приготовить два вида теста у меня было с чем сравнить.Скажу даже вкусовые качества просто меня поразили,я давно не ела таких вкусных вареников и пельменей!!!!!И ещё есть очень большой плюс((у меня осталось немного вареников и пельменей),утром разогрела и была потрясена,они как будто только сварены!!!!Были у моей семьи пельмени счастья!!!!(достались старшему сыночку!!!!)Приготовьте это тесто и оно поистине вам понравится на все 100%.'+#10#13+''+#10#13+'Заварное тесто для вареников и пельменей.'+#10#13+''+#10#13+'Это тесто научила меня делать свекровь. Сначала я им пользовалась в пост, но оно так понравилось мне, что я стала его использовать и для пельменей, и для вареников и всяких жаренных лепёшек с всевозможными начинками. Оно совсем не содержит яиц, очень пластичное, хорошо лепится, но не липкое к поверхности и рукам, не требует подпыления мукой.'+#10#13+''+#10#13+'Ингредиенты:'+#10#13+'-кипяток 250 мл'+#10#13+'-растительное масло 50 г'+#10#13+'-соль 1/2 ч. л.'+#10#13+'-мука примерно 400г'+#10#13+''+#10#13+'Приготовление:'+#10#13+'В кипяток влить масло, добавить соль и половину муки.'+#10#13+'Размешать миксером насадками для теста. Сначала тесто довольно комковатое, но очень быстро становится однородным и гладким.'+#10#13+'Постепенно добавляя муку, замесить довольно крутое, но мягкое тесто. Если тесто получится слишком крутое – не беда, можно положить его в пакет на 30 мин., оно станет более пластичным.'+#10#13+'Тесто напоминает мягкий пластилин, хорошо лепится, при этом совершенно не прилипает к столу, скалке и рукам, не требует подпыления мукой. Раскатывается довольно тонко, при растягивании не рвётся.'+#10#13+'варятся очень быстро, хорошо сохраняют форму.'+#10#13+'Попробуйте! Уверенна, Вам понравится!'+#10#13+''+#10#13+'Тесто на вареники и пельмени.'+#10#13+''+#10#13+'Классическое пельменное тесто должно состоять из муки, яиц и воды (молока)- этот состав определился многовековым опытом многих народов. Другой вопрос стоит в определении правильных пропорций и тут опять на помощь приходит опыт. Идеальное соотношение яиц и воды - на каждое среднее яйцо необходимо брать 2 стакана муки. Для получения необходимой вязкости теста добавляется тёплая вода и/или молоко. Растительное масло делает тесто более нежным и податливым. Соль добавляется по вкусу.'+#10#13+''+#10#13+'Ингредиенты:'+#10#13+'-Мука (зависит от сорта муки и от ее влажности ) — 2-3 стак.'+#10#13+'-Молоко — 1/2 стак.'+#10#13+'-Вода — 1/3 стак.'+#10#13+'-Яйцо — 1 шт'+#10#13+'-Масло растительное — 1 ч. л.'+#10#13+'-Соль — 1 ч. л.'+#10#13+''+#10#13+'Приготовление:'+#10#13+'Итак, высыпаем на стол или в чашку 2 стакана муки. В центре полученной горки делаем небольшое углубление, разбиваем туда яйцо и добавляем тёплую воду, смешанную с молоком и солью.'+#10#13+'Тщательно вымешиваем тесто, добавляем в него 1 чайную ложку масла и ещё раз хорошенько вымешиваем.'+#10#13+'Полученное тесто накрываем тканью или полотенцем и оставляем на 40 минут для созревания. Через 40 минут наше замечательное тесто будет готово.'+#10#13+''+#10#13+'Приятного аппетита!
весь код:
Код:
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls,httpsend,ssl_openssl,lib,
Vcl.ComCtrls, System.StrUtils, Xml.xmldom, Xml.XMLIntf, Xml.XMLDoc,
Vcl.Buttons, Vcl.Grids, FireDAC.Stan.StorageXML, ComObj, msxml, Vcl.ExtCtrls,
NiceGrid;
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Memo1: TMemo;
Button2: TButton;
Button3: TButton;
Edit3: TEdit;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Button8: TButton;
ListBox1: TListBox;
BitBtn1: TBitBtn;
XMLDocument1: TXMLDocument;
StringGrid1: TNiceGrid;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
email,pass,response,msg,userid:string;
{ Public declarations }
end;
var
Form1: TForm1;
token:string;
implementation
{$R *.dfm}
procedure TForm1.BitBtn1Click(Sender: TObject);
var
i, n: integer;
s,t:string;
Nodes: IXMLDomNodeList;
doc :IXMLDOMDocument;
begin
Doc := CreateComObject(CLASS_DOMDocument) as IXMLDOMDocument;
Doc.load('data.xml');
Nodes := Doc.selectNodes('//post/*');
n:=0;
for i:=0 to Nodes.length-1 do
begin
if Nodes.nodeName='text' then
begin
n:=n+1;
s:=(Format('%s', [Nodes.text]));
// showmessage (s);
t:=StringReplace( s, #10, #39'+#10#13+'#39, [rfReplaceAll]);
StringGrid1.Cells[0,n]:=#39 +t+ #39 ;
// showmessage (StringGrid1.Cells[0,n]);
StringGrid1.RowCount:=StringGrid1.RowCount+1;
end;
if Nodes.nodeName='photo_130' then
begin
StringGrid1.Cells[1,n]:=(Format('%s', [Nodes.text]));
end;
if Nodes.nodeName='comments' then
begin
StringGrid1.Cells[2,n]:=(Format('%s', [Nodes.text]));
end;
if Nodes.nodeName='likes' then
begin
StringGrid1.Cells[3,n]:=(Format('%s', [Nodes.text]));
end;
if Nodes.nodeName='reposts' then
begin
StringGrid1.Cells[4,n]:=(Format('%s', [Nodes.text]));
end;
end;
//Srv:=Nil;
Doc := nil;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
s2:string;
begin
email:=Edit1.Text;
pass:=Edit2.Text;
response:=send('GET','https://oauth.vk.com/token?grant_type=password&client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH&username='+email+'&password='+pass+'&captcha_key=&captcha_sid=');
msg:=response;
if Pos('token',response) <> 0 then
begin
s2:=copy(response, pos('access_token":"', response), pos('","expires_in', response)-3);
delete(s2, 1, 15);
token:=s2;
Memo1.Lines.Add(msg);
msg:=token;
userid:=s2;
s2:=Copy(response,Pos('user_id":',response),Pos('}',response));
Delete(s2,1,9);
Delete(s2,Pos('}',s2),1);
userid:=s2;
Memo1.Lines.Add(msg);
msg:=userid;
Memo1.lines.add (msg);
end else
begin
memo1.lines.add('Error');
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
//showmessage(msg);
response:=send('GET','https://api.vk.com/method/friends.get?uid=ИД_пользователя&access_token='+token);
msg:=response;
Memo1.Lines.Add(msg)
end;
function UrlEncode(Str: ansistring): ansistring;
function CharToHex(Ch: ansiChar): Integer;
asm
and eax, 0FFh
mov ah, al
shr al, 4
and ah, 00fh
cmp al, 00ah
jl @@10
sub al, 00ah
add al, 041h
jmp @@20
@@10:
add al, 030h
@@20:
cmp ah, 00ah
jl @@30
sub ah, 00ah
add ah, 041h
jmp @@40
@@30:
add ah, 030h
@@40:
shl eax, 8
mov al, '%'
end;
var
i, Len: Integer;
Ch: ansiChar;
N: Integer;
P: PansiChar;
begin
Result := '';
Len := Length(Str);
P := PansiChar(@N);
for i := 1 to Len do
begin
Ch := Str;
if Ch in ['0'..'9', 'A'..'Z', 'a'..'z', '_'] then
Result := Result + Ch
else
begin
if Ch = ' ' then
Result := Result + '+'
else
begin
N := CharToHex(Ch);
Result := Result + P;
end;
end;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
response:= send ('GET','https://api.vk.com/method/wall.post?owner_id=ИД_пользователя&message='+UrlEncode(AnsiToUTF8('Салат "Лисичка"'+#10#13+''+#10#13+'Ингредиенты:'+#10#13+'2 филе куриной грудки'+#10#13+'3 маринованных огурца'+#10#13+'200 гр. корейской моркови'+#10#13+'200 гр. сыра'+#10#13+'2 зубчика чеснока'+#10#13+'майонез'+#10#13+'зелень'+#10#13+''+#10#13+'Приготовление:'+#10#13+'1. Филе отвариваем в подсоленной воде,затем нарезаем полосочками (или разбираем руками на волокна).'+#10#13+'2. Огурцы также нарезаем полосочками,сыр на крупной терке.'+#10#13+'3. Смешиваем филе.сыр,огурцы и морковь,добавляем выдавленный через пресс чеснок и заправляем майонезом.'))+'&access_token='+token);
msg:=response;
if Pos('post_id',response)<> 0 then
begin
Memo1.Lines.Clear;
Memo1.Lines.Add('Пост отправлен'+msg);
end else
begin
Memo1.Lines.Add('Вы не авторизованы'+msg);
end;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
end;
end.
Последнее редактирование модератором: