【覚書】WordPressにC# WindowsForm から投稿
NuGet で WordPressPCL をインストール。
WordPress には、JWT Authentication for WP-API プラグインをインストール。ユーザー → 対象ユーザ → パスワードの設定。
認証
CWPData wp = getSelectSite(); if( wp != null ) { string strUrl = wp.siteUrl; try { var client = new WordPressClient(strUrl + "wp-json"); client.AuthMethod = AuthMethod.JWT; client.RequestJWToken(txtUserName.Text, txtPasswd.Text).Wait(); // var isValidToken = client.IsValidJWToken().Result; // if (isValidToken == true) { wp.siteToken = client.GetToken(); lblAuth.Visible = true; // int iPos = cbWPData.SelectedIndex; _mWPData[iPos].siteToken = wp.siteToken; } else { lblAuth.Visible = false; } } catch (AggregateException ae) { ae.Handle((ex) => { Console.WriteLine(ex.GetType().Name); Console.WriteLine(" " + ex.Message); if (ex is WPException) { lblAuth.Visible = false; errorMesseage(ex.Message); return true; } else { return false; } }); } catch (Exception ex) { lblAuth.Visible = false; errorMesseage(ex.Message); } }
認証が成功したら、次は投稿
string strUrl = wp.siteUrl; var client = new WordPressClient(strUrl + "wp-json"); try { client.AuthMethod = AuthMethod.JWT; client.SetJWToken(wp.siteToken); // Post entry = new Post(); // entry.Categories = getInts(txtCategory.Text); entry.Tags = getInts(txtTag.Text); entry.Title = new Title(txtTitle.Text); entry.Content = new Content(txtBody.Text); // if (txtMedia.Text != "") { try { int iMedia = int.Parse(txtMedia.Text); entry.FeaturedMedia = iMedia; } catch { } } // var post = client.Posts.Create(entry); post.Wait(); // var result = post.Result; // txtWPUrl.Text = result.Link; // wp.lastCategory = txtCategory.Text; wp.lastTag = txtTag.Text; wp.lastMedia = txtMedia.Text; saveWPData(wp); } catch (AggregateException ae) { ae.Handle((ex) => { if (ex is WPException) { errorMesseage(ex.Message); return true; } else { return false; } }); } catch (Exception ex) { errorMesseage(ex.Message); }
いろいろ余計なソースがあるけど、こんな感じで任意のWordpressに投稿が可能。
認証のTokenは永続的に使える物ではないので、都度取得するくらいのUIが良いと思います。
F1&雑談
小説
開発
静岡
小説やプログラムの宣伝
積読本や購入予定の書籍の情報を投稿しています
小説/開発/F1&雑談アカウントは、フォロバを返す可能性が高いアカウントです
積読本や購入予定の書籍の情報を投稿しています
小説/開発/F1&雑談アカウントは、フォロバを返す可能性が高いアカウントです