<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Bhavesh Ramburn</title>
    <description>The latest articles on DEV Community by Bhavesh Ramburn (@bramburn).</description>
    <link>https://dev.to/bramburn</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F138250%2F83fb4ebe-3f8a-413b-b24c-544a50030ec0.jpeg</url>
      <title>DEV Community: Bhavesh Ramburn</title>
      <link>https://dev.to/bramburn</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bramburn"/>
    <language>en</language>
    <item>
      <title>A Comprehensive Guide to Using the WordPress API: Authentication and Post Scheduling</title>
      <dc:creator>Bhavesh Ramburn</dc:creator>
      <pubDate>Mon, 07 Oct 2024 10:21:59 +0000</pubDate>
      <link>https://dev.to/bramburn/a-comprehensive-guide-to-using-the-wordpress-api-authentication-and-post-scheduling-27me</link>
      <guid>https://dev.to/bramburn/a-comprehensive-guide-to-using-the-wordpress-api-authentication-and-post-scheduling-27me</guid>
      <description>&lt;p&gt;In this guide, we’ll explore how to authenticate with the WordPress API and schedule posts for specific publication times. These steps will help you manage your WordPress content programmatically and securely.&lt;/p&gt;

&lt;h2&gt;
  
  
  Authentication with WordPress API
&lt;/h2&gt;

&lt;p&gt;To interact with the WordPress API securely, you need to authenticate your requests. Let's delve into two common approaches:&lt;/p&gt;

&lt;h3&gt;
  
  
  Application Passwords
&lt;/h3&gt;

&lt;p&gt;Application Passwords is a built-in feature in WordPress that allows you to generate secure passwords for API access without compromising your main account password.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Log in to your WordPress admin dashboard.&lt;/li&gt;
&lt;li&gt;Navigate to &lt;strong&gt;Users → Profile&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Scroll down to the "Application Passwords" section.&lt;/li&gt;
&lt;li&gt;Enter a name for the application (e.g., "API Access").&lt;/li&gt;
&lt;li&gt;Click "Add New Application Password".&lt;/li&gt;
&lt;li&gt;Copy the generated password (you won't be able to see it again).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To use the Application Password:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://your-wordpress-site.com/wp-json/wp/v2/posts&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;username&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;your_username&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;app_password&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;your_application_password&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Content-Type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;application/json&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;auth&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;username&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;app_password&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Basic Authentication Plugin
&lt;/h3&gt;

&lt;p&gt;For older WordPress versions or if you prefer an alternative method:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Download the Basic Authentication plugin from the WordPress.org GitHub repository.&lt;/li&gt;
&lt;li&gt;Install and activate the plugin on your WordPress site.&lt;/li&gt;
&lt;li&gt;Use your regular WordPress username and password for authentication.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://your-wordpress-site.com/wp-json/wp/v2/posts&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;username&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;your_username&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;password&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;your_password&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="n"&gt;headers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Content-Type&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;application/json&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;auth&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;username&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;password&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;headers&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Publishing Posts at Specific Times
&lt;/h2&gt;

&lt;p&gt;To schedule posts for publication at specific times, use the &lt;code&gt;date&lt;/code&gt; parameter when creating or updating a post. Here’s how:&lt;/p&gt;

&lt;h3&gt;
  
  
  Creating a Scheduled Post
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;timedelta&lt;/span&gt;

&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://your-wordpress-site.com/wp-json/wp/v2/posts&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;username&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;your_username&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;app_password&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;your_application_password&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="c1"&gt;# Schedule the post for 2 days from now at 10:00 AM
&lt;/span&gt;&lt;span class="n"&gt;scheduled_time&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nf"&gt;timedelta&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;days&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;scheduled_time&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;scheduled_time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;hour&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;minute&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;second&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;microsecond&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;scheduled_time_str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;scheduled_time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;isoformat&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;title&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Scheduled Post Example&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;content&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;This is the content of the scheduled post.&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;status&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;future&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;date&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;scheduled_time_str&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;auth&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;username&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;app_password&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;status_code&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;201&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Post scheduled successfully!&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Error scheduling post:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Updating an Existing Post's Schedule
&lt;/h3&gt;

&lt;p&gt;To reschedule an existing post, you’ll need its post ID:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;
&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;timedelta&lt;/span&gt;

&lt;span class="n"&gt;post_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;123&lt;/span&gt;  &lt;span class="c1"&gt;# Replace with the actual post ID
&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;https://your-wordpress-site.com/wp-json/wp/v2/posts/&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;post_id&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;username&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;your_username&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;
&lt;span class="n"&gt;app_password&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;your_application_password&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;

&lt;span class="c1"&gt;# Reschedule the post for 1 week from now at 2:00 PM
&lt;/span&gt;&lt;span class="n"&gt;new_scheduled_time&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;datetime&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;now&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nf"&gt;timedelta&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;weeks&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;new_scheduled_time&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;new_scheduled_time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;replace&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;hour&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;14&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;minute&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;second&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;microsecond&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;new_scheduled_time_str&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;new_scheduled_time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;isoformat&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="n"&gt;data&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;status&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;future&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;date&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;new_scheduled_time_str&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;response&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;requests&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;auth&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;username&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;app_password&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="n"&gt;json&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;data&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;status_code&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Post rescheduled successfully!&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Error rescheduling post:&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;text&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Important Notes
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Ensure your WordPress site is using HTTPS for secure communication.&lt;/li&gt;
&lt;li&gt;Keep your Application Password or regular password secure and never share it.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;date&lt;/code&gt; parameter should be in ISO 8601 format (YYYY-MM-DDTHH:MM:SS).&lt;/li&gt;
&lt;li&gt;The WordPress API uses UTC time, so adjust your scheduled times accordingly.&lt;/li&gt;
&lt;li&gt;Set the post &lt;code&gt;status&lt;/code&gt; to "future" for scheduled posts.&lt;/li&gt;
&lt;li&gt;You can also use the &lt;code&gt;date_gmt&lt;/code&gt; parameter to specify the time in GMT/UTC directly.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By following this guide, you should be able to authenticate with the WordPress API and schedule posts for specific publication times programmatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Citations:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;a href="https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/" rel="noopener noreferrer"&gt;Authentication – REST API Handbook | Developer.WordPress.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://jetpack.com/blog/wordpress-rest-api/" rel="noopener noreferrer"&gt;WordPress REST API: How to Access, Use, &amp;amp; Secure It (Full Tutorial)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://wordpress.org/plugins/wp-rest-api-authentication/" rel="noopener noreferrer"&gt;WordPress REST API Authentication – WordPress plugin | WordPress.org&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://getdevdone.com/blog/guide-to-wordpress-api.html" rel="noopener noreferrer"&gt;A Beginner’s Guide to WordPress API Basics - GetDevDone Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://plugins.miniorange.com/wp-rest-api-authentication-setup-guide" rel="noopener noreferrer"&gt;What is WP REST API and How to Secure It | WordPress Rest API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://plugins.miniorange.com/wordpress-rest-api-authentication" rel="noopener noreferrer"&gt;WordPress REST API Authentication | WordPress Plugin&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
      <category>wordpress</category>
      <category>api</category>
      <category>webdev</category>
      <category>python</category>
    </item>
    <item>
      <title>Querying parent from child table in EntityFramework</title>
      <dc:creator>Bhavesh Ramburn</dc:creator>
      <pubDate>Tue, 09 Aug 2022 20:22:07 +0000</pubDate>
      <link>https://dev.to/bramburn/querying-parent-from-child-table-in-entityframework-5456</link>
      <guid>https://dev.to/bramburn/querying-parent-from-child-table-in-entityframework-5456</guid>
      <description>&lt;p&gt;I was looking at getting childrens of a parent table by querying the table only.&lt;br&gt;
To give you a context of the data I had the following models:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
// this is the parent class
class Projects {
public Guid Id;
public List&amp;lt;Comments&amp;gt; comments;
... //other fields
}

// this is the child 1-M
class Comments{
public Guid Id;
public Project project;
... //other fields
}

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once I've injected the dbcontext class, I start querying the database the following way with &lt;code&gt;AsQueryable()&lt;/code&gt; if you don't put this you won't be able to call up the search by id.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="p"&gt;...&lt;/span&gt;
&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;projectId&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"&amp;lt;&amp;lt;guid&amp;gt;&amp;gt;"&lt;/span&gt;

&lt;span class="n"&gt;List&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Comment&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;entity&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;_context&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Comments&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;AsQueryable&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nf"&gt;Where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;it&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;it&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Project&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Id&lt;/span&gt; &lt;span class="p"&gt;==&lt;/span&gt; &lt;span class="n"&gt;projectId&lt;/span&gt; &lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;ToListAsync&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="p"&gt;...&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;doing this, will allow you to query the child's parent's object and return a list&lt;/p&gt;

&lt;p&gt;Hope this was helpful&lt;/p&gt;

</description>
      <category>csharp</category>
      <category>dotnet</category>
      <category>entityframework</category>
    </item>
    <item>
      <title>Windows Server 2019 and AMD Radeon RX 6600</title>
      <dc:creator>Bhavesh Ramburn</dc:creator>
      <pubDate>Mon, 08 Aug 2022 20:46:27 +0000</pubDate>
      <link>https://dev.to/bramburn/windows-server-2019-and-amd-radeon-rx-6600-1oad</link>
      <guid>https://dev.to/bramburn/windows-server-2019-and-amd-radeon-rx-6600-1oad</guid>
      <description>&lt;p&gt;I was having some issues installing and updating the AMD Radeon RX 6600 driver on my windows server 2019. I was trying autoinstallers for drivers and everything and it was not working.&lt;/p&gt;

&lt;p&gt;I was using a tool called easydriver to find and update my drivers. Those were not working very well as they kept using the latest RX 6600 drivers.&lt;/p&gt;

&lt;p&gt;The steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;To get it working I downloaded the windows 10-11 from &lt;a href="https://www.amd.com/en/support/kb/release-notes/rn-pro-win-21-q4"&gt;https://www.amd.com/en/support/kb/release-notes/rn-pro-win-21-q4&lt;/a&gt;, an older version for it to work.&lt;/li&gt;
&lt;li&gt;Once downloaded you need to run it, but it will fail.&lt;/li&gt;
&lt;li&gt;What you'll then have to do is go to your driver manager, then go to your display driver, right click and click update.&lt;/li&gt;
&lt;li&gt;Select manually find the driver folder, then go to the folder that was newly created under &lt;code&gt;C:\AMD\&lt;/code&gt; this will most likely install properly.&lt;/li&gt;
&lt;li&gt;Restart your computer and check if the 3D graphic card is working.&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
    <item>
      <title>Angular Testing with @Input</title>
      <dc:creator>Bhavesh Ramburn</dc:creator>
      <pubDate>Fri, 29 Jul 2022 21:03:14 +0000</pubDate>
      <link>https://dev.to/bramburn/angular-testing-with-input-4c79</link>
      <guid>https://dev.to/bramburn/angular-testing-with-input-4c79</guid>
      <description>&lt;p&gt;I was struggling to test nested with observables and testing emits.&lt;br&gt;
I was looking at a few posts on &lt;a href="https://betterprogramming.pub/testing-angular-components-with-input-3bd6c07cfaf6"&gt;medium&lt;/a&gt;, however it didn't cut it when I needed it to work.&lt;br&gt;
A simple fix that I found on &lt;a href="https://stackoverflow.com/a/63839668/10576489"&gt;stack overflow&lt;/a&gt; helped a lot.&lt;br&gt;
I didn't even use a textcomponentfixture class. It was a bit too complicated.&lt;/p&gt;

&lt;p&gt;Following the guide on Stackoverflow and using SpyOn emits we can achieve a good test.&lt;/p&gt;

&lt;p&gt;So the first thing you want to do is setup the test and a SpyObj inside your &lt;code&gt;beforeAll&lt;/code&gt; method in your test suite.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let spyEmit: jasmine.SpyObj&amp;lt;EventEmitter&amp;lt;Project&amp;gt;&amp;gt;

beforeAll(() =&amp;gt; {
            spyEmit = jasmine.createSpyObj('EventEmitter', ['emit']);
        });
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Make sure you have the spyEmit in your describe.&lt;/p&gt;

&lt;p&gt;Then you have to make sure you set the default EventEmitter in your &lt;code&gt;beforeEach&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;So before you run your &lt;code&gt;fixture.detectChanges();&lt;/code&gt; make sure you set you fake EventEmitter.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;...
 fixture = TestBed.createComponent(ProjectFormComponent);
            component = fixture.componentInstance;
            component.projectDataReturn = spyEmit;
...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is so that it reflects this code in the parent component:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;...
 @Output() projectDataReturn = new EventEmitter&amp;lt;Project&amp;gt;();
 ...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now when you run your code can use a fake spy&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  ...
  spyEmit.emit.and.callFake((project) =&amp;gt; {
                expect(project).toEqual({...fakeProject, id: "old1"});
            });
   ...         
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This allows you to capture the call and check it for each test units.&lt;/p&gt;

&lt;p&gt;Of course you can run &lt;code&gt;expect(spyEmit.emit).toHaveBeenCalled();&lt;/code&gt; to check if the fake method has been called.&lt;/p&gt;

</description>
      <category>angular</category>
      <category>testing</category>
      <category>input</category>
    </item>
    <item>
      <title>.net framework</title>
      <dc:creator>Bhavesh Ramburn</dc:creator>
      <pubDate>Sun, 05 Jun 2022 16:20:56 +0000</pubDate>
      <link>https://dev.to/bramburn/net-framework-4ab2</link>
      <guid>https://dev.to/bramburn/net-framework-4ab2</guid>
      <description>&lt;p&gt;Just revisiting the .net framework; it is a framework that allows you to build software applications across different systems, including mobile, desktop and web.&lt;/p&gt;

&lt;p&gt;supports c#, f#, as well as c++.&lt;br&gt;
but the .net core framework does the same thing but is opensource but does not support c++ yet.&lt;/p&gt;

</description>
      <category>c</category>
      <category>charp</category>
    </item>
    <item>
      <title>angular and asp.net</title>
      <dc:creator>Bhavesh Ramburn</dc:creator>
      <pubDate>Mon, 25 Apr 2022 20:46:07 +0000</pubDate>
      <link>https://dev.to/bramburn/angular-and-aspnet-1969</link>
      <guid>https://dev.to/bramburn/angular-and-aspnet-1969</guid>
      <description>&lt;p&gt;today on my log i've been looking at angular and asp.net core 6. I am working through the book tutorials.&lt;br&gt;
I learnt about rsjx, used it once, its not bad.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>asp.net journey</title>
      <dc:creator>Bhavesh Ramburn</dc:creator>
      <pubDate>Sun, 24 Apr 2022 18:19:19 +0000</pubDate>
      <link>https://dev.to/bramburn/aspnet-journey-30mg</link>
      <guid>https://dev.to/bramburn/aspnet-journey-30mg</guid>
      <description>&lt;p&gt;This is dev log for todya, I've taken a step back and taken some time to reflect on what I need to learn, I'm rushing things again, so I'm taking it easy.&lt;br&gt;
After learning Dependency injection and DDD, (well... still learning DDD) I'm working through c# and asp.net again. I've picked up this book &lt;a href="https://www.oreilly.com/library/view/aspnet-core-6/9781803239705/"&gt;ASP.NET core 6 and angular&lt;/a&gt; it is pretty good and intermediate, just enough to get someone who knows programming to step into this world.&lt;br&gt;
For the last 2 months I was stuck on the concept of DI and DDD. It was all strange, but I pushed on, now I've collected a grasps of it and a bit more on the builder pattern.&lt;br&gt;
I can see the use of singleton pattern and scoped classes. Its interesting that these patterns were nto apparent to me at first.&lt;/p&gt;

&lt;p&gt;once I go through this book to some extent I should be ok to get started on my project.&lt;/p&gt;

&lt;p&gt;Two years ago when i tried ASp.net I was all over the place, I remember I was completely lost as to what was going on. Now with a focus to get into enterprise, I feel a bit comfortable and focused on my career path.&lt;br&gt;
Moving away from my current role into this industry is a dream. I love programming since the age of 12, albeit I was doing it in php and didn't know any better because that was the only thing available for free and I was able to work with it.&lt;/p&gt;

&lt;p&gt;So in the last two days I've picked up:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Secret Manger &lt;a href="https://docs.microsoft.com/en-us/aspnet/core/security/app-secrets?view=aspnetcore-6.0&amp;amp;tabs=linux#enable-secret-storage"&gt;link&lt;/a&gt; and the use of it to store credentials&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;re-read up on OAuth2 &lt;a href="https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/external-authentication-services"&gt;link&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--iPItAU0P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ja8sfe4kg6u1i2852mq5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iPItAU0P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ja8sfe4kg6u1i2852mq5.png" alt="Oatuh" width="845" height="770"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'm currently going through Angular and asp.net now so it should get better in the next few weeks. &lt;/p&gt;

</description>
    </item>
    <item>
      <title>asp.net .net 6 just a view so far</title>
      <dc:creator>Bhavesh Ramburn</dc:creator>
      <pubDate>Sat, 23 Apr 2022 21:14:15 +0000</pubDate>
      <link>https://dev.to/bramburn/aspnet-net-6-just-a-view-so-far-pd3</link>
      <guid>https://dev.to/bramburn/aspnet-net-6-just-a-view-so-far-pd3</guid>
      <description>&lt;p&gt;It's been a tough couple of weeks recently, I've been reflecting and reading a lot about asp.net.&lt;br&gt;
Using some of online guides, video tutorial I've finally got my head around it...somewhat. It is more difficult than laravel for sure... but looking at how much this &lt;a href="https://github.com/jasontaylordev/CleanArchitecture"&gt;clean architecture&lt;/a&gt; template has helped a lot at finding some cool stuff.&lt;br&gt;
Before I got to this I've had to dig myself into books to cover the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dependeny injection&lt;/li&gt;
&lt;li&gt;Mediator&lt;/li&gt;
&lt;li&gt;reviewing Builder Pattern&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Of course there were a few design patterns I've gone through, it seems that it has been helpful.&lt;/p&gt;

&lt;p&gt;Some design patterns I've picked up and used in learning asp.net core&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Singleton pattern&lt;/li&gt;
&lt;li&gt;Guard Pattern&lt;/li&gt;
&lt;li&gt;Observer Pattern&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;it is not easy to go get your head around it.&lt;br&gt;
There is a lot of work, reading, testing and deleting files.&lt;/p&gt;

&lt;p&gt;So far I think I need to build a small tutorial to get started with Clean Architecture from Jason Taylor to get people to understand as the current github repo doesn't have a wiki or good documentation to get newbies in ASp.net to get started.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Selecting Folders using QT5 QTFileDialog</title>
      <dc:creator>Bhavesh Ramburn</dc:creator>
      <pubDate>Sat, 22 Jan 2022 16:07:45 +0000</pubDate>
      <link>https://dev.to/bramburn/selecting-folders-using-qt5-qtfiledialog-1cgm</link>
      <guid>https://dev.to/bramburn/selecting-folders-using-qt5-qtfiledialog-1cgm</guid>
      <description>&lt;p&gt;Following the &lt;a href="https://doc.qt.io/qt-5/qfiledialog.html#getExistingDirectory"&gt;documentation&lt;/a&gt; here we see that it is pretty easy for us to select a folder and return a string of the selected file. This is the easiest way to collect folders and print the value into a textfield:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="n"&gt;QString&lt;/span&gt; &lt;span class="n"&gt;fileName&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;QFileDialog&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;getExistingDirectory&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Open Directory"&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
                                                    &lt;span class="n"&gt;QDir&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;currentPath&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt;
                                                    &lt;span class="n"&gt;QFileDialog&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;ShowDirsOnly&lt;/span&gt;
                                                    &lt;span class="o"&gt;|&lt;/span&gt; &lt;span class="n"&gt;QFileDialog&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;DontResolveSymlinks&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

    &lt;span class="n"&gt;ui&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;textEdit&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;setText&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fileName&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>Install intel AX200 wireless WIFI 6 driver on Windows Server 2019</title>
      <dc:creator>Bhavesh Ramburn</dc:creator>
      <pubDate>Sat, 29 May 2021 19:07:07 +0000</pubDate>
      <link>https://dev.to/bramburn/install-intel-ax200-wireless-wifi-6-driver-on-windows-server-2019-58jn</link>
      <guid>https://dev.to/bramburn/install-intel-ax200-wireless-wifi-6-driver-on-windows-server-2019-58jn</guid>
      <description>&lt;p&gt;This is a quick guide on installing the AX200 Wireless Wifi 6 driver on Windows server.&lt;br&gt;
I ran through a problem when installing the Wifi 6 drivers on my Windows server (standard edition) 2019. I downloaded the driver files directly from Intel and it was not installing because of this &lt;code&gt;A service installation section in this inf is invalid&lt;/code&gt; error.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Download the &lt;code&gt;Intel® PROSet/Wireless Software and Drivers for IT Admins&lt;/code&gt; from &lt;a href="https://www.intel.com/content/www/us/en/download/18231/intel-proset-wireless-software-and-drivers-for-it-admins.html"&gt;https://www.intel.com/content/www/us/en/download/18231/intel-proset-wireless-software-and-drivers-for-it-admins.html&lt;/a&gt; and unzip it on the server.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open Powershell on Windows server 2019 and run the following command&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Add-WindowsFeature &lt;span class="nt"&gt;-Name&lt;/span&gt; Wireless-Networking
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Restart&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go into the Device Manager, click update the driver of the unknown device (normally the 2nd or 3rd unknown device)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Restart&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now you should see the Wifi panel on the bottom right hand corner.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Thanks to &lt;a href="https://rubenmamo.com/solved-a-service-installation-section-in-this-inf-is-invalid-error-when-installing-wifi-driver-on-windows-server/"&gt;Ruben Mamo&lt;/a&gt; for the work around. :)&lt;/p&gt;

</description>
      <category>windows</category>
      <category>server</category>
      <category>2019</category>
    </item>
  </channel>
</rss>
